solr安装笔记与定时器任务
一:solr啟動
目前solr最高版本為5.5.0版本,很多solr安裝都是說將server文件copy到tomcat中,但是solr版本自帶有jetty的啟動方式
首先下載solr-5.5.0版本,解壓后文件目錄:
打開readme.txt ,發現有之下的幾句話:
告訴你使用命令行啟動的方式,本機為windows系統,所以打開cmd(shift+郵件--->在此處打開命令端口),進入bin目錄,輸入命令solr start
這樣就算是啟動成功了,可以直接在瀏覽器中輸入http://localhost:8983 查看solr管理后臺
?
二:創建solr? core
?
??? 1.首先進入/server/solr 文件夾,創建一個文件夾,名稱為你所建core的名稱, 這里我的core取名為mark
? ? 2.在mark目錄下創建一個core.properties文件,里面寫上:name=mark
??? 3.首先進入/server/solr/configsets/basic_configs,將conf目錄copy到剛才的mark目錄下
4.將managed-schema文件修改為schema.xml 文件,這是solr比較核心的文件,用來定義索引
?
先看看這個schema.xml文件
第一行: ,將這個name改為我們自己的core名稱:即mark
第113行定義了id,這個可以任意修改
167行定義了唯一主鍵,這個主鍵可以是任意的類型和字段,但必須是唯一非空的,當有重復的時候,solr將會替換掉之前所創建的索引。
這里是一個默認的對文本的處理,其中配置的分詞器,過濾器等。
配置上這些其實就算成功創建了一個core,可以打開后臺,可以看到新添加了要給core selector.
?
?三:配置solr 數據庫導入
???? solr有插件可以直接從數據庫中導入數據,并創建索引。主要使用solr-dataimporthandler-5.5.0.jar
首先在solrhome/dist 中找到 solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar,solr-core-5.5.0.jar三個包,一并copy到solrhomt/server/lib中
在網上下載一個mysql-connector-java.jar copy到solrhomt/server/lib中
在我們自己的core? mark中,找到solrconfig.xml文件
在這個文件的根節點下添加
???
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>????? 這是給solr服務器添加一個severlet,用來接收dataimport請求。其中配置文件data-config.xml與solrconfig.xml放在同一個目錄下
創建一個文件data-config.xml
配置:
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/morequ" user="root" password="root"/><document><entity name="mark" query="select id,value,type,datam_id,create_time from mark where enable =0 " deltaImportQuery="SELECT id,value,type,datam_id,create_time from mark where enable =0 and id='${dih.delta.id}' " deltaQuery="SELECT id from mark where enable =0 and create_time > '${dih.last_index_time}'" ><field column="id" name="id" /><field column="value" name="value" /><field column="type" name="type" /><field column="datam_id" name="datam_id" /><field column="create_time" name="create_time"/></entity></document> </dataConfig>
??????? 使用dataimport需要一個配置properties,存放一些變量,新建dataimport.properties 文件放在與data-config.xml文件同目錄下
配置好重啟solr
在后臺,我們看到了一個新的菜單:
?command可以選擇是全量更新,還是增量更新。
四:配置增量更新定時任務
當有了數據導入后,并不能實現我們想要的功能,則需要一個定時任務的東西去定時導入增量數據:
可以下載apache-solr-dataimportscheduler-1.0.jar 包,
1.將apache-solr-dataimportscheduler-1.0.jar 放在solrhome/server/solr-webapp/WEB-INF/lib里
注意,此包有一個問題,加載配置文件找不到
原因在這個文件中,
這里給他一個指定的文件路徑:
?? 2. 放好jar包之后,需要配置配置文件
下載jar的時候,如果下的是with source版本,則里面自帶一個dataimport.properties 配置文件,
注意,此時在solrhome/server/solr 中(注意,這里不是jar包的存放位置webapp),創建一個conf文件夾,將dataimport.properties放在conf中
如果沒有的這里貼出來配置文件:
################################################# # # # 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=mark# solr server name or IP address # [defaults to localhost if empty] server=localhost# solr server port # [defaults to 80 if empty] port=8983# 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# schedule interval # number of minutes between two runs # [defaults to 30 if empty] # 這里配置的是2min一次 interval=2# 重做索引的時間間隔,單位分鐘,默認7200,即5天; # 為空,為0,或者注釋掉:表示永不重做索引 reBuildIndexInterval=0# 重做索引的參數 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
???? 3.打開solrhome\server\solr-webapp\webapp\WEB-INF\web.xml
添加一個listener:
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
? 4.重新啟動solr,定時器任務則生效。
?
參考資料:
http://www.cnblogs.com/atyou/archive/2013/04/21/3033675.html
?
轉載于:https://www.cnblogs.com/lic309/p/5254205.html
總結
以上是生活随笔為你收集整理的solr安装笔记与定时器任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu(14.04) 下配置重写
- 下一篇: Codeforces Round #34