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后如果索引正常更新,恭喜你完成了。
如有问题,请联系 qq 931434891