索引创建完毕,就要考虑怎么定时的去重建, 除了写solrj,可以定时调用下面两条url进行增量或者全量创建索引
全量:http://ip:port/webapp_name/core_name/dataimport?command=full-import
增量:http://ip:port/webapp_name/core_name/dataimport?command=delta-import
全量索引直接调用就可以,因为是完全删除重建
如果是增量索引,就稍微麻烦一些,首先你必须在表中定义两个字段,一个是删除标志:isdeleted,另一个则是记录创建时间:create_date,名称随意,这两个字段主要通知solr对已有索引的删除,和需要导入的新纪录的时间(solr建立索引会生成dataimport.properties,里面last_index_time=2014-03-07 14\:48\:27记录了上次建立索引的时间,需要你指定create_date在这个时间之后的记录进行增量)
接下来需要你在dataimport.xml增加如下配置:
<entity pk="ID" name="test"
query="select * from test WHERE isdelete=0 "
deltaQuery="select ID from test where
create_date>'${dataimporter.last_index_time}'"
deletedPkQuery="select ID from myinfo where isdelete=1"
deltaImportQuery="select * from myinfo where
ID='${dataimporter.delta.ID}'">
含义如下:
deltaQuery
查询出所有经过修改的记录的ID
可能是修改操作,添加操作,删除操作产生的
(此查询只对增量导入起作用,而且只能返回ID值)
deletedPkQuery
此操作值查询那些数据库里伪删除的数据的ID(即isdelete标识为1的数据)
solr通过它来删除索引里面对应的数据
(此查询只对增量导入起作用,而且只能返回ID值)
deltaImportQuery
次查询是获取以上两步的ID,然后把其全部数据获取,根据获取的数据
对索引库进行更新操作,可能是删除,添加,修改
(此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列)
分享到:
相关推荐
如何使用solr搭建服务器
适用于jdk1.6,solr4.7服务器及solr配置文件
solr4.7从数据库导数据[归类].pdf
solr定时索引使用到的定时调度器jar包, 可使用于solr7.x版本
当前的IKAnalyzer官方版在用于Solr4以上高版本时,由于没有TokenizerFactory而造成诸多不便,于是有了为Lucene/Solr 4.7重新打包的IKAnalyzer 2012 FF
经过测试可以适用solr7.4版本。如果低版本solr(6.*) 可以直接适用网上的solr-dataimport-scheduler 1.1 或者1.0版本。
这是我自己反编译fix后,支持solr7.4高版本的定时增量任务(亲测solr7.4),下载下来开箱即用。低版本的没试过,估计低版本的solr配合之前apache-solr-dataimportscheduler-1.0.jar这些能行,不行就试试我这个。
apache solr guide 4.7
slor定时增量更新索引dataimport.properties
兼容solr6.5.1 定时任务依赖jar包
solr4.7+myeclipse示例包含需要的jar包 httpcore-4.3 httpmime-4.3.1 jtds-1.2.4 jul-to-slf4j-1.6.6 solr-core-4.7.0
Solr数据库插入(全量和增量)索引,全量一般用于第一次创建索引情况,批量一般更新数据部分创建索引。
solr4.7从数据库导数据[参照].pdf
solr4.7中文企业开发参考文档.包含了检索建议,分组查询,各个参数代表的意义详细配置
solr4.7+中文分词器IK Analyzer 2012FF_hf1相匹配,本人测试可以使用
solr 增量更新所需要的包 solr-dataimporthandler-6.5.1 + solr-dataimporthandler-extras-6.5.1 + solr-data-import-scheduler-1.1.2
solr-data-import-scheduler-1.1.2,用于solr定时更新索引的jar包,下载后引入到solr本身的dist下面,或者你tomcat项目下面的lib下面
solr定时增量更新索引所需jar包包括:solr-dataimporthandler-4.0.0.jar、solr-dataimportscheduler.jar(6.x适用)、solr-dataimporthandler-extras-4.0.0.jar。
这是属于Solr7.X版本的全量、增量更新jar包,有很多版本的这个jar包是没有更新过的,因为这个jar包是爱好者开发的,并不是官方维护,所以很难找到,我是用了两天才找到。