开源企业搜索引擎SOLR的应用教程

2026/1/23 15:01:15

url

2. 删除索引 1)

删除制定ID的索引

05138022 2)

删除查询到的索引数据

id:IW-02 3)

删除所有索引数据

*:*

通过HTTP POST将命令发往: http://localhost:8080/solr/update

注:以上xml文件通过HTTP POST将命令发往在 http://192.168.10.85:18080/solr/update/,多核心时为这

个地址http://192.168.10.85:18080/solr/core0/update/

3.5.2 批量索引操作

对原有系统已有的数据或需要索引的数据量较大的情况,需要进行批量的索引操作 1. 通过CVS文件的方式提交

直接采用通过http方式调用solr的接口方式,效率较差,采用solr本身对csv 的支持

( http://wiki.apache.org/solr/UpdateCSV ),将数据导出为csv格式,然后调用solr的csv接口http://localhost:8080/solr/update/csv 具体操作步聚:

1.修改conf/solrconfig.xml 1)新增csv处理配置项

2)修改enableRemoteStreaming=true

curl http://localhost:8983/solr/update/csv?stream.file=exampledocs/books.csv&stream.contentType=text/plain;charset=utf-8 4/17/2013

版权所有,侵权必究All rights reserved

第37页,共58页Page 37 ,

Total58

#NOTE: The full path, or a path relative to the CWD of the running solr server must be used. 2. 数据库数据导入生成索引(DataImportHandler DIH)

写程序可以将数据读出100条,如果你的内存够大,可以是1000条甚至更多,然后放入Collection中,批量提交至solr。或者读取数据写入xml文件中,再将该文件提交到solr等等。但是,我们还可以通过配置文件直接读取数据库建立索引。

1) 全量更新索引

一、提供对应数据库的jdbc驱动。

将jdbc驱动放在TOMCAT_HOME\\webapps\\solr\\WEB-INF\\lib目录下。

二、在C:\\solr-tomcat\\solr\\conf目录下新建db文件夹,在db文件夹中新建db-data-config.xml内容如下:

三、修改C:\\solr-tomcat\\solr\\conf目录下的solrconfig.xml文件。在相应的位置添加如下代码: 注:C:\\solr-tomcat\\solr\\conf\\db\\db-data-config.xml是db-data-config.xml的存放路径,你要根据实际情况而定。 document:一个文档也就是lucene的document这个没什么解释的。 entity:主要针对的是一个数据库表。

filed:属性column是数据库的字段,name是filed的名字,即schema中的field name。 更多请参考官方wiki:http://wiki.apache.org/solr/DataImportHandler

四、启动TOMCAT,输入地址进行导入,导入分为多种模式:我用的是完全导入模式。 http://localhost:8080/solr/dataimport?command=full-import 结果:

00C:\\solr-tomcat\\solr\\conf\\db\\db-data-config.xmlfull-importidle1202009-09-05 21:28:08Indexing completed. Added/Updated: 2 documents. Deleted 0 documents.2009-09-05 21:28:092009-09-05 21:28:090:0:0.579This response format is experimental. It is likely to change in the future.

五、再去查询你刚才提交的数据。

4/17/2013

版权所有,侵权必究All rights reserved

第38页,共58页Page 38 ,

Total58

上面的例子只不过是很简单的一个部分。针对solr的 MultiCore,通过配置db-data-config.xml也可以实现,还有多表,或者多表关联等等操作只要在db-data- config.xml配置清楚都可以进行数据的导入。

在solr1.4中还有更多的扩展功能,这些功能为重建索引提供能很方便的操作。而且datasource不单单指的是database,可以是xml文件,还可以是来自网络上的等等。

2) 增量更新索引

1、首先要确认表中有last_modified字段。

2、修改C:\\solr-tomcat\\solr\\conf\\db\\db-data-config.xml文件,内容如下: '${dataimporter.last_index_time}'\ 3、重启tomcat。添加一条记录。 访问:http://localhost:8089/solr/dataimport?command=delta-import 再查询一下,是不是可以查询到刚才添加的记录了。

3.6 3.6.1

如何进行搜索 搜索语法

1. solr 查询参数说明 1)

常用

1) q - 查询字符串,必须的。

2) fl - 指定返回那些字段内容,用逗号或空格分隔多个。

3) start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。 4) rows - 指定返回结果最多有多少条记录,配合start来实现分页。

5) sort - 排序,格式:sort=+[,+]… 。示例:

(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。 注:排序字段 只能针对数值型如:int,dobuble等…

4/17/2013

版权所有,侵权必究All rights reserved

第39页,共58页Page 39 ,

Total58

6) wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3增加的,要用通知

我们,因为默认没有打开。

7) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:

q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。官方文档:

http://wiki.apache.org/solr/CommonQueryParameters#head-6522ef80f22d0e50d2f12ec487758577506d6002

2) 不常用

1) q.op - 覆盖schema.xml的defaultOperator(有空格时用\还是用\操作逻辑),一般默

认指定

2) df - 默认的查询字段,一般默认指定

3) qt - (query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。

3) 其它

1) indent - 返回的结果是否缩进,默认关闭,用 indent=true|on 开启,一般调试

json,php,phps,ruby输出才有必要用这个参数。

2) version - 查询语法的版本,建议不使用它,由服务器指定默认值。

2. Solr的检索运算符

1. “:” 指定字段查指定值,如返回所有值*:*

2. “?” 表示单个任意字符的通配

3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)

4. “~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。

5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10

6. “^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache 7. 布尔操作符AND、|| 8. 布尔操作符OR、&&

9. 布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询) 10.“+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在 11. ( ) 用于构成子查询

12. [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710] 13. {} 不包含范围检索,如检索某时间段记录,不包含头尾 date:{200707 TO 200710}

注:范围检索字段只适用于:String,int,dobule,date不能用于long型的字段 14. \\ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : \\

3. solr查询的一些常用语法

1、首先假设我的数据里fields有:name, tel, address 预设的搜寻是name这个字段, 如果要搜寻的数据刚好就是 name 这个字段,就不需要指定搜寻字段名称。

2、查询规则:

如欲查询特定字段(非预设字段),请在查询词前加上该字段名称加 “:” (不包含”号) 符号, 例如: address:北京市海淀区上地软件园 tel:88xxxxx1 1>. q代表query input

2>. version代表solr版本(建议不要变动此变量)

4/17/2013

版权所有,侵权必究All rights reserved

第40页,共58页Page 40 ,

Total58


开源企业搜索引擎SOLR的应用教程.doc 将本文的Word文档下载到电脑
搜索更多关于: 开源企业搜索引擎SOLR的应用教程 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219