美文网首页工具使用开发技术我爱编程
solr7.3在tomcat环境下单机部署

solr7.3在tomcat环境下单机部署

作者: 作草分茶 | 来源:发表于2018-06-21 13:54 被阅读6次

    1、准备tomcat和solr

    ​ 本文介绍的是在windows下部署solr,Linux环境和windows大同小异。

    ​ 在tomcat官网下载apache-tomcat-8.5.29.zip和solr-7.3.1.zip并解压。我的解压路径为D:\dev\solr-7.3.1和D:\dev\apache-tomcat-8.5.29。

    2、配置tomcat

    1. D:\dev\solr-7.3.1\server\solr-webapp\webapp拷贝到D:\dev\apache-tomcat-8.5.29\webapps中,重命名为solr。

    2. D:\dev\solr-7.3.1\server\lib中的jar包和D:\dev\solr-7.3.1\server\lib\ext中的所有jar包都拷贝到D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF\lib中。

    3. D:\dev\apache-tomcat-8.5.29下新建目录solrhome。将D:\dev\solr-7.3.1\example\example-DIH\solr\solr拷贝到solrhome中,并改名为account(这是solr的core,相当于一个数据库),将D:\dev\solr-7.3.1\server\solr中的solr.xml和zoo.cfg拷贝到solrhome中。编辑D:\dev\apache-tomcat-8.5.29\solrhome\account中的core.properties文件,加入

      name=account
      

      name可随意。编辑D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF中的web.xml,将

        <!-- People who want to hardcode their "Solr Home" directly into the
             WAR File can set the JNDI property here...
         -->
       <env-entry>
             <env-entry-name>solr/home</env-entry-name>
             <env-entry-value>D:\dev\apache-tomcat-8.5.29\solrhome</env-entry-value>
             <env-entry-type>java.lang.String</env-entry-type>
          </env-entry>
      

      这段代码释放,配置好solrhome。

    4. D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF中新建classes文件夹,将D:\dev\solr-7.3.1\server\resources中的log4j.properties文件拷贝到里面。将D:\dev\solr-7.3.1\dist下的solr-dataimporthandler-7.3.1.jar和solr-dataimporthandler-extras-7.3.1.jar拷贝到D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF\lib中。

    5. 此时启动tomcat,访问http://localhost:8070/solr/index.html#/,发现403错误。将D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF中的web.xml中最底部的<auth-constraint/>注释掉。重新启动tomcat即可。

       <!-- Get rid of error message -->
        <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>
      

    3、配置中文分词

    3.2 配置solr自带的smartcn中文分词器。
    1. D:\dev\solr-7.3.1\contrib\analysis-extras\lucene-libs中的lucene-analyzers-smartcn-7.3.1.jar拷贝到D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF\lib中。

    2. 编辑D:\dev\apache-tomcat-8.5.29\solrhome\account\conf中的managed-schema,在最后添加以下代码。fieldType指的是字段类型,之后添加字段的时候需要用到这个。

        <!--
           <similarity class="com.example.solr.CustomSimilarityFactory">
             <str name="paramkey">param value</str>
           </similarity>
          -->
        <fieldType name="text_account" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
            <analyzer type="query">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
        </fieldType>
      
      然后重启tomcat。分词成功。 分词成功
    3.2配置mmseg4j分词器。
    1. 去maven仓库下载mmseg4j-core-1.10.0.jarmmseg4j-solr-2.4.0.jar,拷贝到D:\dev\apache-tomcat-8.5.29\webapps\solr\WEB-INF\lib中。(网上很多教程说要拷贝mmseg4j-analysis-1.9.0.jar,由于mmseg4j-solr-2.4.0.jar中集成了该jar,所以不需要拷贝这个jar,如果拷贝了会报错。)

    2. D:\dev\apache-tomcat-8.5.29\solrhome\account\conf中的managed-schema中添加如下配置。dicPath路径为managed-schema所在路径。

      <fieldType name="text_mmseg4j_complex" class="solr.TextField" positionIncrementGap="100" >  
              <analyzer>  
                 <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:\dev\apache-tomcat-8.5.29\solrhome\account\conf"/>  
                 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />  
               </analyzer>  
           </fieldType>  
           <fieldType name="text_mmseg4j_maxword" class="solr.TextField" positionIncrementGap="100" >  
                <analyzer>  
                  <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:\dev\apache-tomcat-8.5.29\solrhome\account\conf"/>  
                  <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />  
                </analyzer>  
            </fieldType>  
            <fieldType name="text_mmseg4j_simple" class="solr.TextField" positionIncrementGap="100" >  
                <analyzer>  
                  <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:\dev\apache-tomcat-8.5.29\solrhome\account\conf"/>  
                  <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />  
                </analyzer>  
            </fieldType> 
      

      三种不同的字段分词类型有不同的效果,具体不同可自行尝试。

    相关文章

      网友评论

        本文标题:solr7.3在tomcat环境下单机部署

        本文链接:https://www.haomeiwen.com/subject/gvlqyftx.html