[置顶] SOLR 4.4 部署

时间:2021-09-14 07:35:12

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