solr定时实时重建索引和增量更新

时间:2023-01-02 07:58:13

原帖:http://www.sxt.cn/u/756/blog/4231


结合自己之前的帖子 http://blog.csdn.net/johnny880730/article/details/50435093 继续:


使用说明
    1. 将 apache-solr-dataimportscheduler-1.0.jar 和solr自带的 apache-solr-dataimporthandler-5.1.0.jar, apache-solr-dataimporthandler-extras-5.1.0.jar 放到 tomcat/webapps/solr/WEB-INF/lib/ 目录下面

    2.修改tomcat/webapps/solr/WEB-INF/中的web.xml, 在servlet节点前面增加:

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

    3.将apache-solr-dataimportscheduler-.jar 中 dataimport.properties 取出并根据实际情况修改,然后放到 solr_home/conf (不是solr_home/core1/conf) 目录下面,solr_home/conf文件夹没有的话手动创建


    4.重启tomcat


dataimport.properties 配置项修改说明

#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################

#  to sync or not to sync
#  1 - active; anything else - inactive
syncEnabled=1

#  which cores to schedule
#  in a multi-core environment you can decide which cores you want syncronized
#  leave empty or comment it out if using single-core deployment
syncCores=core1

#  solr server name or IP address
#  [defaults to localhost if empty]
server=localhost

#  solr server port
#  [defaults to 80 if empty]
port=8080

#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
webapp=solr

#  URL params [mandatory]
#  remainder of URL
#增量
params=/deltaimport?command=delta-import&clean=false&commit=true&optimize=false&wt=json&indent=true&entity=students&verbose=false&debug=false

#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
interval=20

#  重做索引的时间间隔,单位分钟,默认7200,即1天; 
#  为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=7200

#  重做索引的参数
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true&optimize=true&wt=json&indent=true&entity=students&verbose=false&debug=false

#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
#  两种格式:2012-04-11 03:10:00 或者  03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=09:00:00

测试时候发现的问题在转载的原帖中已有说明,因此使用原帖中博主提供的apache-solr-dataimportscheduler-1.1.jar来代替1.0的。

原博主提供的apache-solr-dataimportscheduler-1.1.jar的下载地址:

apache-solr-dataimportscheduler-1.1.

apache-solr-dataimportscheduler-1.1-source


备份:

apache-solr-dataimportscheduler-1.1

apache-solr-dataimportscheduler-1.1-source