1. 程式人生 > >solr配置自動增量更新

solr配置自動增量更新

<span style="font-family: inherit; font-size: 18px; font-style: inherit; background-color: transparent;">自動增量更新可定時將資料庫中的資料匯入到solr索引庫中,並可定時重建索引庫,合併小索引檔案為大的索引檔案。</span>

下面介紹如何配置solr自動更新。

需要準備的jar包

solr自帶:

 apache-solr-dataimporthandler-.jar, apache-solr-dataimporthandler-extras-.jar 

用於定時更新和重做索引的的jar:

apache-solr-dataimportscheduler-1.0.jar 

下載地址:

百度雲:

帶原始碼:http://pan.baidu.com/s/1qWlSK0W

不帶原始碼 :http://pan.baidu.com/s/1c0in1By

配置過程:

將這三個jar包放到solr.war的lib目錄下面。

修改修改solr.war中WEB-INF/web.xml

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

將apache-solr-dataimportscheduler-.jar 中 dataimport.properties 取出並根據實際情況修改,然後放到 solr.home/conf (不是solr.home/core/conf) 目錄下面。

我用的是solr5.2.1,內部用的jetty容器,那麼配置檔案需要放到:solr-5.2.1/server/solr/conf/下面

該目錄需要自己新建!

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,core2 #  solr server name or IP address#  [defaults to localhost if empty] server=localhost //solr伺服器的ip地址 #  solr server port#  [defaults to 80 if empty] port=8080 //solr伺服器的埠號#  application name/context#  [defaults to current ServletContextListener's context (app) name] webapp=solr #  URL params [mandatory]#  remainder of URL#params=/dataimport?command=delta-import&clean=false&commit=true //增量更新的請求地址
params=/deltaimport?command=delta-import&clean=false&commit=true//這裡要寫成deltaimport,我用的時solr5.2.1用上面的不好使。。。

#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
interval=1                 //自動增量更新的時間間隔,單位為分鐘,預設為30分。

#  重做索引的時間間隔,單位分鐘,預設7200,即5天; 
#  為空,為0,或者註釋掉:表示永不重做索引
reBuildIndexInterval=7200

#  重做索引的引數
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true#  重做索引時間間隔的計時開始時間,第一次真正執行的時間=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;#  兩種格式:2012-04-11 03:10:00 或者  03:10:00,後一種會自動補全日期部分為服務啟動時的日期
reBuildIndexBeginTime=03:10:00

以上配置完成後,即可重啟伺服器。至此自動更新配置完成。