阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Sorl 6.6.0 实现定时更新索引

177次阅读
没有评论

共计 1796 个字符,预计需要花费 5 分钟才能阅读完成。

Solr 定时更新索引

– solr 6.6.0
– dataimport.scheduler

这里先重点说下,定时更新引用的 org.apache.solr.handler.dataimport.scheduler.ApplicationListener 不是 sorl 源码自带的,需要另外去下载,下载地址为:dataimport.scheduler,因为源码年久没人维护,所以并不兼容现有版本,需要做稍微的修改。

一、打开 WEB-INF 下的 web.xml 文件,在 <servlet>前添加下面的配置,配置定时更新计划

<listener>
    <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
  </listener>

二、打开 solr 对应的 core 下 conf 目录的 data-config.xml 文件,配置增量更新索引。
具体官网地址:delta-import。
这里说下其中比较重要的参数:
deletedPkQuery:是指增量更新的时候,要删除的 document,查询只需要返回一个 document 的 id 即可,例如:Select id From Table Where Deleted=1
deltaQuery: 同上,返回了修改或添加的 document。solr 会自己判断是否需要添加或修改 document,依据是 managed-schema 文件里面配置的 uniquekey,如果有相同的,那就替换旧的,不存在则添加。这里的返回结果会排除掉上面 deletedPkQuery 的 id。另外,如果 uniquekey 的 field 定义类型为整形的要注意下,千万不要用 pint(6.6.0 下定义的)这个类型,增量更新的时候会出现莫名其妙的问题,我搞了好久才发现这个 uniquekey 定义的是 pint,改成 int 后就正常了。例子:`Select id From Table Where Updated=1 And UpdateAt>'${dih.last_index_time}'
deltaImportQuery: 这个配置是增量更新的重点所在,它直接返回增量更新的数据(根据 deletedPkQuery 和 deltaQuery 返回的 id),例子:Select * From DocumentTable Where ${dih.delta.id},
这里说下 ${dih.last_index_time},这个变量是 core 下的 conf 目录的 dataimport.properties,上面记录了索引最近更新的时候,在执行查询的时候,solr 会自动替换成配置文件里面记录的时间,${dih.delta.id} 是 deltaQuery 里面返回的字段,这里是 id,也可以是其他名字,如

 deltaQuery="SELECT StudentID   FROM Student Where Updated=1 And [UpdateTime] > '${dih.last_index_time}'"
 deltaImportQuery="SELECT * FROM Student  Where StudentID=${dih.delta.StudentID}"

更多 Solr 相关教程见以下内容

CentOS7 下搭建 Solr 6.6 全文检索服务器及 IK 分词器配置  http://www.linuxidc.com/Linux/2017-12/149897.htm

Apache Solr: 安装和运行 http://www.linuxidc.com/Linux/2016-12/138527.htm

Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm

Solr6.0.0 + Tomcat8 配置问题 http://www.linuxidc.com/Linux/2016-05/131845.htm

CentOS 6.7 下单机部署 Solr 7.1.0  http://www.linuxidc.com/Linux/2017-12/149889.htm

Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149901.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1796字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中