solr安装笔记与定时器任务
一:solr啟動
目前solr最高版本為5.5.0版本,很多solr安裝都是說將server文件copy到tomcat中,但是solr版本自帶有jetty的啟動方式
首先下載solr-5.5.0版本,解壓后文件目錄:
打開readme.txt ,發(fā)現(xiàn)有之下的幾句話:
告訴你使用命令行啟動的方式,本機(jī)為windows系統(tǒng),所以打開cmd(shift+郵件--->在此處打開命令端口),進(jìn)入bin目錄,輸入命令solr start
這樣就算是啟動成功了,可以直接在瀏覽器中輸入http://localhost:8983 查看solr管理后臺
?
二:創(chuàng)建solr? core
?
??? 1.首先進(jìn)入/server/solr 文件夾,創(chuàng)建一個(gè)文件夾,名稱為你所建core的名稱, 這里我的core取名為mark
? ? 2.在mark目錄下創(chuàng)建一個(gè)core.properties文件,里面寫上:name=mark
??? 3.首先進(jìn)入/server/solr/configsets/basic_configs,將conf目錄copy到剛才的mark目錄下
4.將managed-schema文件修改為schema.xml 文件,這是solr比較核心的文件,用來定義索引
?
先看看這個(gè)schema.xml文件
第一行: ,將這個(gè)name改為我們自己的core名稱:即mark
第113行定義了id,這個(gè)可以任意修改
167行定義了唯一主鍵,這個(gè)主鍵可以是任意的類型和字段,但必須是唯一非空的,當(dāng)有重復(fù)的時(shí)候,solr將會替換掉之前所創(chuàng)建的索引。
這里是一個(gè)默認(rèn)的對文本的處理,其中配置的分詞器,過濾器等。
配置上這些其實(shí)就算成功創(chuàng)建了一個(gè)core,可以打開后臺,可以看到新添加了要給core selector.
?
?三:配置solr 數(shù)據(jù)庫導(dǎo)入
???? solr有插件可以直接從數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù),并創(chuàng)建索引。主要使用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三個(gè)包,一并copy到solrhomt/server/lib中
在網(wǎng)上下載一個(gè)mysql-connector-java.jar copy到solrhomt/server/lib中
在我們自己的core? mark中,找到solrconfig.xml文件
在這個(gè)文件的根節(jié)點(diǎn)下添加
???
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>????? 這是給solr服務(wù)器添加一個(gè)severlet,用來接收dataimport請求。其中配置文件data-config.xml與solrconfig.xml放在同一個(gè)目錄下
創(chuàng)建一個(gè)文件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需要一個(gè)配置properties,存放一些變量,新建dataimport.properties 文件放在與data-config.xml文件同目錄下
配置好重啟solr
在后臺,我們看到了一個(gè)新的菜單:
?command可以選擇是全量更新,還是增量更新。
四:配置增量更新定時(shí)任務(wù)
當(dāng)有了數(shù)據(jù)導(dǎo)入后,并不能實(shí)現(xiàn)我們想要的功能,則需要一個(gè)定時(shí)任務(wù)的東西去定時(shí)導(dǎo)入增量數(shù)據(jù):
可以下載apache-solr-dataimportscheduler-1.0.jar 包,
1.將apache-solr-dataimportscheduler-1.0.jar 放在solrhome/server/solr-webapp/WEB-INF/lib里
注意,此包有一個(gè)問題,加載配置文件找不到
原因在這個(gè)文件中,
這里給他一個(gè)指定的文件路徑:
?? 2. 放好jar包之后,需要配置配置文件
下載jar的時(shí)候,如果下的是with source版本,則里面自帶一個(gè)dataimport.properties 配置文件,
注意,此時(shí)在solrhome/server/solr 中(注意,這里不是jar包的存放位置webapp),創(chuàng)建一個(gè)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 # 增量更新的請求參數(shù) 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# 重做索引的時(shí)間間隔,單位分鐘,默認(rèn)7200,即5天; # 為空,為0,或者注釋掉:表示永不重做索引 reBuildIndexInterval=0# 重做索引的參數(shù) reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true# 重做索引時(shí)間間隔的計(jì)時(shí)開始時(shí)間,第一次真正執(zhí)行的時(shí)間=reBuildIndexBeginTime+reBuildIndexInterval*60*1000; # 兩種格式:2012-04-11 03:10:00 或者 03:10:00,后一種會自動補(bǔ)全日期部分為服務(wù)啟動時(shí)的日期 reBuildIndexBeginTime=03:10:00
???? 3.打開solrhome\server\solr-webapp\webapp\WEB-INF\web.xml
添加一個(gè)listener:
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
? 4.重新啟動solr,定時(shí)器任務(wù)則生效。
?
參考資料:
http://www.cnblogs.com/atyou/archive/2013/04/21/3033675.html
?
轉(zhuǎn)載于:https://www.cnblogs.com/lic309/p/5254205.html
總結(jié)
以上是生活随笔為你收集整理的solr安装笔记与定时器任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu(14.04) 下配置重写
- 下一篇: Codeforces Round #34