zoukankan      html  css  js  c++  java
  • Solr单机环境搭建及部署

    一、定义

    官网的定义:

    Solr是基于Lucene构建的流行,快速,开放源代码的企业搜索平台。它具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自动故障转移和恢复,集中式配置等。 Solr支持许多世界上最大的互联网站点的搜索和导航功能。

    简单的理解solr就是一款搜索框架,通常用实现查询功能,比如电商网站的商品检索。

    二、环境搭建

    本文基于以下开源组件版本搭建,约定下载后组件和解压缩的文件都放置在/opt目录下

    • solr-8.2.0

    • apache-tomcat-8.5.47

    首先下载solr-8.2.0.tgz,可以使用wget命令:

    wget http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.tgz
    

    解压缩:

    tar -zxvf solr-8.2.0.tgz -C .
    

    解压后,/opt目录下会多一个solr-8.2.0目录

    下载apache-tomcat-8.5.47:

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz
    

    解压缩:

    tar -zxvf apache-tomcat-8.5.47.tar.gz
    

    为了将solr部署到tomcat服务器,不使用solr自带的jetty,首先在/opt目录下创建一个目录用于部署solr服务,名称无限制,这里取名solr了。

    mkdir solr
    

    复制一份tomcat到/opt/solr目录下,重命名为tomcat8

    cp -r apache-tomcat-8.5.47 solr/tomcat8
    

    solr本质是一个web服务,我们将它复制到tomcat8下:

    cp -r solr-8.2.0/server/solr-webapp/webapp solr/tomcat8/webapps/solr
    

    复制solr-8.2.0/server/lib/ext下的部分jar到solr目录中,为了简便可以完全复制所有的,然后忽略掉disruptor-3.4.2.jar

    cp solr-8.2.0/server/lib/ext/* solr/tomcat8/webapps/solr/WEB-INF/lib/
    

    复制solr-8.2.0/server/lib下以metrics开头的jar到solr目录:

    cp solr-8.2.0/server/lib/metrics* solr/tomcat8/webapps/solr/WEB-INF/lib/
    

    上面这两项注意是复制到solr服务的lib目录下,不是复制到tomcat8/lib下。

    复制solr-8.2.0/server/resources下的log4j*.xml文件到solr

    首先在solr创建classes目录:

    mkdir solr/tomcat8/webapps/solr/WEB-INF/classes
    

    复制日志配置文件:

    cp solr-8.2.0/server/resources/log4j2*.xml solr/tomcat8/webapps/solr/WEB-INF/classes/
    

    将solr-8.2.0/server/solr目录复制到solr/目录下,并重命名为solrhome:

    cp -r solr-8.2.0/server/solr solr/solrhome
    

    修改日志路径

    vim solr/tomcat8/webapps/solr/WEB-INF/classes/log4j2.xml
    

    指定fileName和filePattern的路径:

    <RollingRandomAccessFile
            name="MainLogFile"
            fileName="/opt/solr/solrhome/log/solr.log"
            filePattern="/opt/solr/solrhome/log/solr.log.%i" >
          <PatternLayout>
         ....
    

    关联solr及solrhome

    修改solr里的web.xml文件

    vim solr/tomcat8/webapps/solr/WEB-INF/web.xml
    

    web.xml中<web-app></web-app>标签内添加如下配置,指定sorlhome路径

    <env-entry>
        <env-entry-name>solr/home</env-entry-name>
        <env-entry-value>/opt/solr/solrhome</env-entry-value>
        <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    
    

    注释掉下方的下列配置:

    <!--
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Disable TRACE</web-resource-name>
            <url-pattern>/</url-pattern>
            <http-method>TRACE</http-method>
    	</web-resource-collection>
    	<auth-constraint/>
    </security-constraint>
    <security-constraint>
    	<web-resource-collection>
            <web-resource-name>Enable everything but TRACE</web-resource-name>
            <url-pattern>/</url-pattern>
            <http-method-omission>TRACE</http-method-omission>
    	</web-resource-collection>
    </security-constraint>
    -->
    

    最后启动tomcat,访问服务器的solr服务:

    sh solr/tomcat8/bin/start.sh
    

    访问地址:

    localhost:8080/solr/index.html
    

    三、配置IK分词器

    首先从IK分词器下载与solr版本匹配的jar包,并放置在solr服务的lib目录下,

    cp ik-analyzer-8.2.0.jar solr/tomcat8/webapps/solr/WEB-INF/lib/
    

    在solr/solrhome/下创建目录test_core,拷贝配置文件到test_core中:

    cp -r solr/solrhome/configsets/sample_techproducts_configs/conf/ solr/solrhome/test_core/
    

    修改conf中的solr.xml文件,修改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:../}/dist/" regex="solr-ltr-d.*.jar" />
    
    <lib dir="${solr.install.dir:../}/contrib/velocity/lib" regex=".*.jar" />
    <lib dir="${solr.install.dir:../}/dist/" regex="solr-velocity-d.*.jar" />
    

    修改managed-schema文件,添加ik分词器配置:

    <!-- ik分词器 --> 
    <fieldType name="text_ik" class="solr.TextField"> 
    	<analyzer type="index"> 
    		<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/> 
    		<filter class="solr.LowerCaseFilterFactory"/> 
    	</analyzer> 
    	<analyzer type="query"> 
    		<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> 
    		<filter class="solr.LowerCaseFilterFactory"/> 
    	</analyzer> 
    </fieldType>
    

    重启solr服务,打开管理界面,添加test_core:

    打开管理界面,分词示例:

  • 相关阅读:
    X Apex 忘记internal密码
    X ORA-27303: additional information: startup egid = 202 (?), current egid = 101 (dba)
    X 高效查看MySQL帮助文档的方法
    X mysql高可用之MHA--邮件报警
    X MHA高可用配置及故障切换——详细部署步骤及报错解决办法
    X linux 配置发送邮件的功能
    RESTFUL(javax.ws.rs-api)
    nginx及基本原理
    nginx中的location匹配规则
    Linux网络(TCP/IP)
  • 原文地址:https://www.cnblogs.com/xiaoxiaoyihan/p/11719488.html
Copyright © 2011-2022 走看看