Solr单机搭建
- 环境:centos7, solr6.6.5, tomcat8, JDK1.8
准备
- 下载apache-tomcat-8.5.20.tar.gz jdk-8u181-linux-x64.tar.gz solr-6.6.5.tgz zookeeper-3.4.6.tar.gz
- 安装jdk1.8,配置环境变量
- 创建目录/home/solrcloud, 用于安装solr和zook
单机solr安装
-
解压tomcat,命名为tomcat8280, 修改tomcat8280/conf/server.xml中的的端口,避免端口冲突。
#第22行 <Server port="8205" shutdown="SHUTDOWN"> #第69行 <Connector port="8280" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #第116行 <Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />
把solr-6.6.5/server/solr-webapp 下的 webapp 文件夹拷贝到 tomcat 的 webapps 下,重命名为 solr。(和solr4拷贝solr.war同理)
cp -r solr-6.6.5/server/solr-webapp/webapp/ /home/solrcloud/tomcat8280/webapps/solr
-
拷贝solr-6.6.5\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar和metrics开头的jar包、solr-6.6.5/dist/solr-dataimporthandler-*(两个jar) 拷贝到 tomcat8\webapps\solr 项目的WEB-INF\lib下
cp -r solr-6.6.5/server/lib/ext/* /home/solrcloud/tomcat8280/webapps/solr/WEB-INF/lib/ cp -r solr-6.6.5/server/lib/gmetric4j-1.0.7.jar /home/solrcloud/tomcat8280/webapps/solr/WEB-INF/lib/ cp -r solr-6.6.5/server/lib/metrics-* /home/solrcloud/tomcat8280/webapps/solr/WEB-INF/lib/ cp -r solr-6.6.5/dist/solr-dataimporthandler-* solrcloud/tomcat8280/webapps/solr/WEB-INF/lib/
-
创建一个索引库solrhome
拷贝solr-6.6.5\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是建立到了/home/solrcloud/tomcat8280/solr。
cp -r solr-6.6.5/server/solr solrcloud/tomcat8280/solr
-
**关联solr及索引库solrhome,**需要修改tomcat8282里solr工程的web.xml文件,修改env-entry-value 为solrhome的目录
vi solrcloud/tomcat8280/webapps/solr/WEB-INF/web.xml
修改web.xml如下
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/home/solrcloud/tomcat8280/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
然后到最下方,将这一段注释掉,不然会报403错误,完成后保存退出(solr4部署不用注释这个)
HTTP Status 403 - Forbidden 解决
- 拷贝solr6.6.5\server\resources下的 log4j2.xml 到tomcat8280/webapps/solr/WEB-INF/classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹 (solr4一样需要)
[root@localhost WEB-INF]# mkdir classes
[root@localhost WEB-INF]# cp /home/solr-6.6.5/server/resources/log4j.properties classes/
- 修改log4j.properties文件 或者修 改tomcat的bin目录下catalina.bat脚本,增加solr.log.dir系统变量,指定solr日志记录存放地址。
或者
在tomcat8280/bin/catalina.sh 中增加:
JAVA_OPTS="$JAVA_OPTS -Dsolr.log.dir=/usr/local/tomcat8/solrhome/logs"
- 切换到solrhome目录,复制 solr-x.x.x/contrib 和 solr-x.x.x/dist文件夹到solrhome目录下,修改solrhome/${core}/conf/solrconfig.xml如下:(此步可以不执行:定义每个core需要加载的jar,与webapps/solr/WEB-INF/lib下的jar加载时期不同)
<lib dir="${solr.install.dir:..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:..}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:..}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:..}/dist/" regex="solr-velocity-\d.*\.jar" />
-
添加IK中文分词器,下载中文分词jar。项目地址:https://github.com/magese/ik-analyzer-solr7
拷贝ik分词jar到tomcat8280/webapps/solr/WEB-INF/lib下
cp ikanalyzer-solr5/solr-analyzer-ik-5.1.0.jar ikanalyzer-solr5/ik-analyzer-solr5-5.x.jar solrcloud/tomcat8280/webapps/solr/WEB-INF/lib/
拷贝ik分词配置文件到tomcat8280/webapps/solr/WEB-INF/classes下
cp ikanalyzer-solr5/IKAnalyzer.cfg.xml ikanalyzer-solr5/stopword.dic ikanalyzer-solr5/ext.dic solrcloud/tomcat8280/webapps/solr/WEB-INF/classes/
修改schema.xml或manage-schema文件,在最后增加filedType:
<!--IK中文分词器--> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer" /> <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer" /> </fieldType>