搜索推荐三——Solr单机搭建

Solr单机搭建

  • 环境:centos7, solr6.6.5, tomcat8, JDK1.8

准备

  1. 下载apache-tomcat-8.5.20.tar.gz jdk-8u181-linux-x64.tar.gz solr-6.6.5.tgz zookeeper-3.4.6.tar.gz
  2. 安装jdk1.8,配置环境变量
  3. 创建目录/home/solrcloud, 用于安装solr和zook

单机solr安装

  1. 解压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 
  1. 拷贝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/
    
  2. 创建一个索引库solrhome

    拷贝solr-6.6.5\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是建立到了/home/solrcloud/tomcat8280/solr。

    cp -r  solr-6.6.5/server/solr solrcloud/tomcat8280/solr
    
  3. **关联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 解决

搜索推荐三——Solr单机搭建_第1张图片

  1. 拷贝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/
  1. 修改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"
  1. 切换到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" />
  1. 添加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:

    
     <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> 
    

你可能感兴趣的:(学习总结,Java,搜索推荐)