首页 > 代码库 > Solr3.6.2和Solr4.9.0常用配置

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=http://www.mamicode.com/"/work/apache-solr-3.6.2/example/multicore" override="true" />  >

拷贝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"
/>

分词器


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分词。

停止词库


指的是指文本中出现频率很高,但实际意义又不大的词,主要指副词、虚词、语气词等。如“是”、“而是”等。它主要用在信息检索中。在为文本或网页建立索引的时候,会去掉这些词。


扩展词库


与自己的业务相关的词库,会作为独立词进行处理。例如: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>


Solr 4.9


基本配置


Solr 4.9,需要JDK7支持。


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

solr\dist\solr-4.9.0.war至tomcat\webapps,并更名为solr.war

重启tomcat,solr.war自动部署,修改webapps\solr\WEB-INF\web.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.0\example\lib\ext\*.jar至tomcat\lib

复制solr-4.9.0\example\resources\log4j.properties至tomcat\lib

重启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目录下。

其他和3.6.2类似


主从


和3.6.2类似,不赘述。


Solr3.6.2和Solr4.9.0常用配置