zoukankan      html  css  js  c++  java
  • Solr3.6.2和Solr4.9.0经常使用配置


    tomcat


    以tomcat 7为例,位置/work/apache-tomcat-7.0.55


    Solr 3.6.2


    基本配置


    Solr 3.6.2。须要JDK 6/JDK7支持。


    下载Solr 3.6.2。解压后,位置:/work/apache-solr-3.6.2。


    在tomcat的conf/Catalina/localhost文件夹下,新建solr.xml文件,内容例如以下:

    <Context docBase="/work/apache-solr-3.6.2/example/webapps/solr.war" privileged="true" allowLinking="true" crossContext="true">
       <Environment name="solr/home" type="java.lang.String" value="/work/apache-solr-3.6.2/example/multicore" override="true" />  
    </Context>

    拷贝example/solr/conf文件夹下的内容,到example/multicore/core0/conf文件夹下,

    启动tomcat。訪问:http://localhost:8080/solr/,出现solr界面,则solr的core0基本配置已经完毕。


    tomcat优化配置:

    <Connector port="9090" protocol="org.apache.coyote.http11.Http11NioProtocol"
      executor="tomcatThreadPool" 
      connectionTimeout="20000"
      maxThreads="5000" minSpareThreads="50" 
      acceptCount="5000" enableLookups="false" 
      compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plan" 
      compression="on" compressionMinSize="2048" disableUploadTimeout="true" 
      redirectPort="8443" URIEncoding="UTF-8"
    />


    索引文件位置:core0/data。能够使用du -sh 查看索引大小。


    分词器


    Lucene3.2-3.6,须要IK Analyzer 2012 U6。


    下载IK分词器。在multicore下新建lib文件夹,把IK jar放置到lib文件夹下。比如:IKAnalyzer2012_u6.jar。然后改动multicore下得solr.xml文件,在solr节点中添加属性: sharedLib="lib" 就可以。

    假设须要配置扩展词库和停止词库,则须要到tomcat的webapps/solr/WEB_INF文件夹下新建classes文件夹,把IKAnalyzer.cfg.xml和对应的字典文件放置在这个文件夹中,IKAnalyzer.cfg.xml的内容例如以下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
    <properties>  
    	<comment>IK Analyzer Configure</comment>
    	<!--用户能够在这里配置自己的扩展字典 -->
    	<entry key="ext_dict">dic1.dic;dic2.dic;</entry> 
    	
    	<!--用户能够在这里配置自己的扩展停止词字典-->
    	<entry key="ext_stopwords">stopword.dic;</entry> 	
    </properties>

    字典文件的配置方式为:无BOM的UTF-8编码方式。

    注意:有人把IKAnalyzer.cfg.xml和相关配置文件,放到multicore/lib文件夹下。这是不生效的。


    然后,在schema.xml中。配置类型:text_general 使用 IK中文分词,配置节点例如以下:

    <fieldType name="text_general" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
      <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="false"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
      <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="true"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

    则全部使用text_general类型的field都会使用IK分词。


    关于这样的字段类型的原始配置例如以下:

    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
    	<tokenizer class="solr.StandardTokenizerFactory"/>
    	<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    	<!-- in this example, we will only use synonyms at query time
    	<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    	-->
    	<filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
    	<tokenizer class="solr.StandardTokenizerFactory"/>
    	<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    	<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    	<filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

    停止词库


    指的是指文本中出现频率非常高,但实际意义又不大的词,主要指副词、虚词、语气词等。如“是”、“而是”等。它主要用在信息检索中。

    在为文本或网页建立索引的时候。会去掉这些词。


    扩展词库


    与自己的业务相关的词库。会作为独立词进行处理。比如:http://blog.csdn.net/shihuacai/article/details/8494360


    主从


    solrconfig.xml,master机器配置:

    <requestHandler name="/replication" class="solr.ReplicationHandler">
    <lst name="master">
    <str name="replicateAfter">startup</str>
    <str name="replicateAfter">optimize</str>
    <str name="confFiles">schema.xml</str>
    <str name="commitReserveDuration">00:00:30</str>
    <str name="numberToKeep">1</str>
    </lst>
    </requestHandler>


    solrconfig.xml,slave机器配置:

    <requestHandler name="/replication" class="solr.ReplicationHandler">
    <lst name="slave">
    <str name="masterUrl">http://ip:8080/solr/core0/replication</str>
    <str name="pollInterval">00:00:10</str>
    <str name="compression">external</str>
    <str name="httpConnTimeout">5000</str>
    <str name="httpReadTimeout">10000</str>
    </lst>
    </requestHandler>

    关于compression,有人这样说:external 非常easy有索引大小不正确, 压缩文件损坏这2个问题, 导致复制无法进行, 且一直复制失败, 測试下来internal没不论什么问题;只是我每遇到过。

    很多其它内容參考网址:http://wiki.apache.org/solr/SolrReplication 。


    Solr 4.9.0


    基本配置


    Solr 4.9。须要JDK7支持。


    下载Sorl 4.9,解压后。位置:/work/solr-4.9.0。

    solrdistsolr-4.9.0.war至tomcatwebapps,并更名为solr.war

    重新启动tomcat。solr.war自己主动部署,改动webappssolrWEB-INFweb.xml中的solrHome,例如以下:

        <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>/work/solr-4.9.0/example/multicore</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>

    复制solr-4.9.0examplelibext*.jar至tomcatlib

    复制solr-4.9.0example esourceslog4j.properties至tomcatlib

    重新启动tomcat,訪问:http://localhost:8080/solr/,出现solr界面,则solr的基本配置已经完毕。

    其它部分和3.6.2类似。


    分词器


    下载IK Analyzer分词器。lucene4.X和solr4.X的IK Analyzer 要用以下这个版本号IK Analyzer 2012FF_hfl。

    jar包放在tomcat/webapps/solr/WEB-INF/lib文件夹下,xml和dic放在tomcat/webapps/solr/WEB-INF/classes文件夹下。

    其它。也就是IKAnalyzer.cfg.xml、shema.xml的内容配置,和3.6.2类似,不赘述。

    另外。注意,在solr4.9中使用的IK分词器jar包,在schema.xml中应该这样配置:

    <fieldType name="text_general" class="solr.TextField">
    	<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    	<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>
    

    英文在IK Analyzer 2012FF_hfl中以及没有org.wltea.analyzer.solr包了。

    这个我还不确认是在IK Analyzer 2012FF_hfl中就没有了,还是我下载的jar包不全...


    主从


    和3.6.2类似,不赘述。


  • 相关阅读:
    编译安装LAMP之php-5.4.13、xcache-2.0及使用ab命令实现压力测试
    编译安装LAMP之MySQL-5.5.28(通用二进制格式)
    编译安装LAMP之httpd-2.4.4
    建立LAMP平台
    MySQL初步,数据类型及SQL语句
    数据库及MySQL
    PHP相关概念及配置
    CSS:页面美化和布局控制
    HTML标签:表单标签
    web概念简述,HTML学习笔记
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6729827.html
Copyright © 2011-2022 走看看