SOLR 4.4 部署
前言:近期研究下solr4.4的部署,一下是部署步驟,與大家分享下。
下載solr4.4.0.zip
地址 http://mirror.esocc.com/apache/lucene/solr/4.4.0/solr-4.4.0.zip
apache-solr-dataimportscheduler-1.0.jar (調度重建索引jar包)
https://solr-dataimport-scheduler.googlecode.com/files/apache-solr-dataimportscheduler-1.0.jar
準備:能運行tomcat java環境 此次部署 採用 apache-tomcat-6.0.35
開始部署:
一 部署solr4.4
1 解壓solr4.4.0.zip
2 將 solr-4.4.0\dist\solr-4.4.0.war拷貝到apache-tomcat-6.0.35\webapps下,重命名爲solr, 啓動tomcat,啓動成功後停止tomcat,並將solr.war刪除
3 將solr-server\solr-4.4.0\dist下的jar拷貝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
4 將solr-server\solr-4.4.0\dist\solrj-lib下的jar拷貝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
5 將 solr-server\solr-4.4.0\example\resources\log4j.properties拷貝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
6 新建solrhome目錄 將solr-server\solr-4.4.0\example\multicore下所有文件夾拷貝至 solrhome,本次將solrhome新建路徑爲D:\solr-server\SolrHome。
7 修改apache-tomcat-6.0.35\webapps\solr\WEB-INF\web.xml文件
解註釋以下內容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:\solr-server\SolrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
二 增加dataimport,實現定時更新 (此次以core1爲例)
1 在 solr-server\SolrHome\core1\conf增加dataimport.properties,
內容爲:
#FriSep 13 13:36:30 CST 2013
last_index_time=2013-09-1313\:36\:29
v_userrecord.last_index_time=2013-09-1313\:36\:29
次配置文件爲增量更新用,每次更新都是更新last_index_time
和 v_userrecord.last_index_time時間後的數據
2 在solr-server\SolrHome\core1\conf\solrconfig.xml 加入以下內容
內容爲:
<requestHandlername="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<strname="config">db\db-data-config.xml</str>
</lst>
</requestHandler>
作用爲指定dataimport配置文件位置
3 根據2步驟的配置爲例 在solr-server\SolrHome\core1\conf下增加文件目錄 db
db下增加文件db-data-config.xml
內容爲:
<?xmlversion="1.0" encoding="UTF-8" ?>
<dataConfig> <dataSource type="JdbcDataSource"driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/***"user="***" password="***" />
<document name="mytable">
<entity name="***" transformer="ClobTransformer"
query="***"deltaImportQuery="SELECT * FROM *** where id=${dataimporter.delta.id}"deltaQuery="select id from *** where *** > '${dataimporter.last_index_time}' OR *** >'${dataimporter.last_index_time}' OR ***> '${dataimporter.last_index_time}'">
</entity>
</document>
</dataConfig>
以上配置內容的意思是取最後一次的更新時間然後根據sql查出後更新索引
4 將apache-solr-dataimportscheduler-1.0.jar拷貝至
apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib
將 mysql-connector-java-5.0.8.jar 拷貝到 apache-tomcat-6.0.35\webapps\solr\WEB-INF\lib下
5 在solrhome下添加 con文件目錄
SolrHome\conf\在該文件夾下添加dataimport.properties
重要配置地方:
索引重建的間隔 (單位爲分鐘)
interval=1
重建索引時的參數(增量更新 執行clean和 commit )
params=/dataimport?command\=delta-import&clean\=false&commit\=true
索引 webapp名稱
webapp=solr
索引名稱
syncCores=core1
server名稱
server=localhost
端口
port=8080
# 重做索引時間間隔的計時開始時間,第一次真正執行的時間 =reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 兩種格式:2012-04-1103:10:00或者 03:10:00,後一種會自動補全日期部分爲服務 啓動時的日期
reBuildIndexBeginTime=03:10:00
有時候批量增量更新時會出現內存溢出,可以在solrconfig.xml 增增加以下內容
<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>1000</maxTime>
</autoCommit>
也要記得調優tomcat 增加 jvm內存。在catlina.out 文件的最頂部加入以下:
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512m
配置完成,啓動tomcat後如果索引正常更新,恭喜你完成了。