Solr索引数据

一般来说,索引是系统地排列文档或(其他实体)。索引使用户能够在文档中快速地查找信息。

  • 索引集合,解析和存储文档。
  • 索引是为了在查找所需文档时提高搜索查询的速度和性能。

在Apache Solr中的索引

在Apache Solr中,我们可以索引(添加,删除,修改)各种文档格式,如xml,csv,pdf等。可以通过几种方式向Solr索引添加数据。
在本章中,将讨论创建索引的几个方法 -

  • 使用Solr Web界面。
  • 使用任何客户端API(如Java,Python等)。
  • 使用提交工具。

在本章中,将讨论如何使用各种接口(命令行,Web界面和Java客户端API)向Apache Solr的索引添加数据,

使用Post命令添加文档

Solr在其bin/目录中有一个post命令。使用这个命令,可以在Apache Solr中索引各种格式的文件,例如JSON,XML,CSV。

进入到Apache Solr的bin目录并执行post命令的-h选项,如以下代码块所示。

[email protected]:/usr/local/solr-6.4.0/bin$ cd $SOLR_HOME
[email protected]:/usr/local/solr-6.4.0/bin$ ./post -h

Shell

在执行上述命令时,将得到post命令的选项列表,如下所示。

Usage: post -c <collection> [OPTIONS] <files|directories|urls|-d [".."]>
or post –help
   collection name defaults to DEFAULT_SOLR_COLLECTION if not specified
OPTIONS
=======
Solr options:
   -url <base Solr update URL> (overrides collection, host, and port)
   -host <host> (default: localhost)
   -p or -port <port> (default: 8983)
   -commit yes|no (default: yes)  

Web crawl options:
   -recursive <depth> (default: 1)
   -delay <seconds> (default: 10)  

Directory crawl options:
   -delay <seconds> (default: 0)  

stdin/args options:
   -type <content/type> (default: application/xml)  

Other options:
   -filetypes <type>[,<type>,...] (default:
   xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
   rtf,htm,html,txt,log)
   -params "<key> = <value>[&<key> = <value>...]" (values must be
   URL-encoded; these pass through to Solr update request)
   -out yes|no (default: no; yes outputs Solr response to console)
   -format Solr (sends application/json content as Solr commands
   to /update instead of /update/json/docs)  

Examples:
* JSON file:./post -c wizbang events.json
* XML files: ./post -c records article*.xml
* CSV file: ./post -c signals LATEST-signals.csv
* Directory of files: ./post -c myfiles ~/Documents
* Web crawl: ./post -c gettingstarted http://lucene.apache.org/Solr -recursive 1 -delay 1
* Standard input (stdin): echo ‘{commit: {}}‘ | ./post -c my_collection -
type application/json -out yes –d
* Data as string: ./post -c signals -type text/csv -out yes -d $‘id,value\n1,0.47‘

Shell

示例`

假设有一个名称为sample.csv的文件,其内容如下(这个文件也在`bin目录中)。
上述数据集包含个人详细信息,如学生ID,名字,姓氏,电话和城市。数据集的CSV文件如下所示。 在这里必须注意:数据记录的第一行。

id,    first_name,   last_name,   phone_no,      location
001,   Pruthvi,      Reddy,       9848022337,    Hyderabad
002,   kasyap,       Sastry,      9848022338,    Vishakapatnam
003,   Rajesh,       Khanna,      9848022339,    Delhi
004,   Preethi,      Agarwal,     9848022330,    Pune
005,   Trupthi,      Mohanty,     9848022336,    Bhubaneshwar
006,   Archana,      Mishra,      9848022335,    Chennai

可以使用post命令在名称为Solr_sample的核心下,对此数据编制索引,如下所示:

[email protected]:/usr/local/solr-6.4.0/bin$ ./post -c solr_sample sample.csv

Shell

在执行上述命令时,给定文档在指定的核心下会生成索引,生成以下输出。

[email protected]:/usr/local/solr-6.4.0/bin$ ./post -c solr_sample sample.csv
/usr/local/jdk1.8.0_65/bin/java -classpath /usr/local/solr-6.4.0/dist/solr-core-6.4.0.jar -Dauto=yes -Dc=solr_sample -Ddata=files org.apache.solr.util.SimplePostTool sample.csv
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/solr_sample/update...
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
POSTing file sample.csv (text/csv) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/solr_sample/update...
Time spent: 0:00:00.663

Shell

访问Solr Web UI的主页使用以下URL -

选择核心Solr_sample。 默认情况下,请求处理程序是/select,查询为“”。 不做任何修改,单击页面底部的ExecuteQuery按钮。

在执行查询时,可以以JSON格式(默认)观察索引的CSV文档的内容,如下面的屏幕截图所示。

注意 - 以相同的方式,可以索引其他文件格式,如JSON,XML,CSV等。

使用Solr Web界面添加文档

还可以使用Solr提供的Web界面对文档编制索引。看看下面如何索引JSON格式的文档。

[
   {
      "id" : "001",
      "name" : "Ram",
      "age" : 53,
      "Designation" : "Manager",
      "Location" : "Hyderabad",
   },
   {
      "id" : "002",
      "name" : "Robert",
      "age" : 43,
      "Designation" : "SR.Programmer",
      "Location" : "Chennai",
   },
   {
      "id" : "003",
      "name" : "Rahim",
      "age" : 25,
      "Designation" : "JR.Programmer",
      "Location" : "Delhi",
   }
]

JSON

第1步

使用以下URL打开Solr Web界面 -

第2步

选择核心Solr_sample。 默认情况下,Request HandlerCommon WithinOverwriteBoost字段的值分别为/update1000true1.0,如下面的屏幕截图所示。

现在,从JSON,CSV,XML等中选择所需的文档格式。在文本区域中键入要索引的文档,然后单击提交文档按钮,如下面的屏幕截图所示。

使用Java Client API添加文档

以下是Java程序向Apache Solr索引添加文档代码。将代码保存在AddingDocument.java文件中。

import java.io.IOException;  

import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.common.SolrInputDocument; 

public class AddingDocument {
   public static void main(String args[]) throws Exception {
      //Preparing the Solr client
      String urlString = "http://localhost:8983/Solr/my_core";
      SolrClient Solr = new HttpSolrClient.Builder(urlString).build();   

      //Preparing the Solr document
      SolrInputDocument doc = new SolrInputDocument(); 

      //Adding fields to the document
      doc.addField("id", "003");
      doc.addField("name", "Rajaman");
      doc.addField("age","34");
      doc.addField("addr","vishakapatnam"); 

      //Adding the document to Solr
      Solr.add(doc);         

      //Saving the changes
      Solr.commit();
      System.out.println("Documents added");
   }
}

Java

通过在终端中执行以下命令编译上述代码 -


[email protected]:/usr/local/solr-6.4.0/bin$ javac AddingDocument.java
[email protected]:/usr/local/solr-6.4.0/bin$ java AddingDocument

Bash

执行上述命令后,将得到以下输出。

Documents added

原文地址:https://www.cnblogs.com/youqc/p/9075594.html

时间: 2024-07-28 15:43:42

Solr索引数据的相关文章

[转][solr] - 索引数据删除

删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) <delete><query>id:1</query></delete> <commit/> 删除所有索引,这样写就可以了: <delete><query>*:*</query></delete> <c

[solr] - 索引数据删除

删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) <delete><query>id:1</query></delete> <commit/> 删除所有索引,这样写就可以了: <delete><query>*:*</query></delete> <c

(二) solr 索引数据导入:xml格式

xml 是最常用的数据索引格式,不仅可以索引数据,还可以对文档与字段进行增强,从而改变它们的重要程度. 下面就是具体的实现方式: schema.xml的字段配置部分如下: <field name="id" type="string" stored="true" indexed="true"/> <field name="name" type="string" store

[solr 管理界面] - 索引数据删除

删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) <delete><query>id:1</query></delete> <commit/> 删除所有索引,这样写就可以了: <delete><query>*:*</query></delete> <c

使用Solr索引MySQL数据

环境搭建 1.到apache下载solr,地址:http://mirrors.hust.edu.cn/apache/lucene/solr/ 2.解压到某个目录 3.cd into D:\Solr\solr-4.10.3\example 4.Execute the server by “java -jar startup.jar”Solr会自动运行在自带的Jetty上 5.访问http://localhost:8983/solr/#/ 创建MySQL数据 DataBase Name: mybat

Kafka+Flume+Morphline+Solr+Hue数据组合索引

背景:Kafka消息总线的建成,使各个系统的数据得以在kafka节点中汇聚,接下来面临的任务是最大化数据的价值,让数据“慧”说话. 环境准备: Kafka服务器*3. CDH 5.8.3服务器*3,安装Flume,Solr,Hue,HDFS,Zookeeper服务. Flume提供了可扩展的实时数据传输通道,Morphline提供了轻量级的ETL功能,SolrCloud+Hue提供了高性能搜索引擎和多样的数据展现形式. 一.环境安装(略) 二.修改CDH默认配置: 1.在Flume配置界面配置F

solr删除全部索引数据

SOLR 删除全部索引数据: <delete><query>*:*</query></delete><commit/> 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/9334941.html

SolrCloud中索引数据存储于HDFS

SolrCloud中索引数据存储于HDFS 本人最近使用SolrCloud存储索引日志条件,便于快速索引,因为我的索引条件较多,每天日志记录较大,索引想到将日志存入到HDFS中,下面就说说怎么讲solr的索引条件数据存储到HDFS中. 一.准备工作 Solr环境或SolrCloud集群,如果不会安装可以看一下Solr5.5.4单机部署或者SolrCloud集群部署 HDFS分布式系统环境,如果不会安装的可以看一下Hadoop2.5.0安装部署 本人就以Solr5.5.4+Tomcat8.5.6单

C#读取RSS源,并利用Solr索引

折磨我几天的问题今天终于解决了,分享一下近期solr使用的一些经验. 本来是用nutch在爬取页面,可是客户需要爬取RSS,而且可以识别那些页面是通过RSS源抓取出来的.nutch虽然自带解析RSS的插件,但是有些RSS解析不了,也不好控制,更重要的抓取后和普通页面就没什么太大的区别了,不能识别不能判断是由哪个rss源抓取出来的.因为上面原因,所以就自己用C#写了一个配合Solr抓取RSS的工程. 一切实现好后,客户非常满意,我也觉得做的还不错,可是过了一段时间后发现nutch在solrdedu