solr DB 实现增量索引

1.增量索引实现原理:

Solr提供了delta-import导入方式。
所谓delta-import主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。主要原理是利用率每次我们进行import的时候在solr.home\conf下面生成的dataimport.properties文件,此文件里面有最近一次导入的相关信息。这个文件如下:

1. #Wed Apr 21 16:48:27 CST 2010

2. last_index_time=2010-04-21 16\:48\:24

3. id.last_index_time=2010-04-21 16\:48\:24


其实last_index_time是最近一次索引(full-import或者delta-import)的时间。
通过比较这个时间和我们数据库表中的timestamp列即可得出哪些是之后修改或者添加的。

2.配置步骤

1)配置好请求处理器。(这个见我的上一篇文章)
2)修改data-config.xml如下:
注意entity标签的参数:
deltaImportQuery
仅适用于delta-import的参数。DIH会检查数据库中的最后修改时间是否与我们
deltaQuery 更新updateTime查询出更新记录,然后deltaImportQuery 获取记录,dataimporter.delta.id 来自于deltaQuery 中id字段
3)最后我们请求:
[url=http://]http://:/solr/dataimport?command=delta-import[/url] 即可完成delta import
相关参数如下:
entity
entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity 。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。
clean
选择是否要在索引开始构建之前删除之前的索引,默认为true
commit
选择是否在索引完成之后提交。默认为true
optimize
是否在索引完成之后对索引进行优化。默认为true
debug
是否以调试模式运行,适用于交互式开发(interactive development mode)之中。
请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”
4)测试增量效果
更新db数据:
update ap_spu_info set spu_modified_date = now (),spu_name='newjay'
where spu_id >= 7558 and spu_id <= 7558 and spu_id
发送增量更新索引请求:http://localhost:8888/solr/dataimport?command=delta-import
查询索引请求:http://localhost:8888/solr/admin/
[img]http://dl.iteye.com/upload/attachment/429424/d854f2f5-b6c7-32e6-9b87-d0a03087fb70.jpg[/img]

Query String 中输入 pid:[7558 TO 200000]
[img]http://dl.iteye.com/upload/attachment/429422/baf601ef-8152-33a3-81eb-00ac82747d9d.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值