tomcat与solr3.6的整合使用(原创)

最近在做搜索引擎的一个项目,现在把solr3.6与tomcat的整合的主要步骤简单的记录如下:
下载apache-solr-3.6.0(下载地址为http://lucene.apache.org/solr/downloads.html),然后解压,得到apache-solr-3.6.0,我将它放在E:\software\lucene-3.6.0\apache-solr-3.6.0
1.将E:\software\lucene-3.6.0\apache-solr-3.6.0\example\solr下的文件拷贝到要作为服务器的位置(如:D:\lucene\solr\home),可以删除data目录下的数据,保留data文件夹;
2.将E:\software\lucene-3.6.0\apache-solr-3.6.0\example\webapps中的solr.war程序也拷贝出来(D:\lucene\solr\server);,并解压solr.war

3.打开D:\lucene\solr\home文件夹中的conf (D:\lucene\solr\home\config)下的solrconfig.xml, 配置<dataDir>${solr.data.dir:}</dataDir>为(这里指定data的路径)

<dataDir>${solr.data.dir:D:\lucene\solr\home\data}</dataDir>

4.设置相应的tomcat中的server.xml的context,在<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">下面增加类似如下内容:

<Context path="/solr" docBase="D:\lucene\solr\server\solr" reloadable="false"></Context>

5.为context设置相应的环境变量,说明solr的主目录的地址(在coontext中增加environment):

<Context path="/solr" docBase="D:\lucene\solr\server\solr" reloadable="false">
<Environment name="solr/home" type="java.lang.String" value="D:\lucene\solr\home" override="true"/>
</Context>

6.修改solrconfig中的

<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>

为:

<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:false}"/>

或者直接注释掉

7.启动tomcat,通过localhost:8080/solr验证配置,出现如下页面说明配置成功


注:以下第8部分如果不做中文分词可以不配置

8.加入中文分词(这里需要下载中文分词包,我下载的是mmseg4j)
8.1.将中文分词的包加入到Server的lib中;
8.2. 在 solr的 schema.xml 中定义 field type如:
<fieldType name="textComplex" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
      </analyzer>
    </fieldType>
<fieldType name="textMaxWord" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
      </analyzer>
    </fieldType>
<fieldType name="textSimple" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/OpenSource/apache-solr-1.3.0/example/solr/my_dic"/>
      </analyzer>
    </fieldType>
dicPath 指定词库位置(每个MMSegTokenizerFactory可以指定不同的目录,当是相对目录时,是相对 solr.home 的目录),mode 指定分词模式(simple|complex|max-word,默认是max-word)。

把mmseg4j的data中的四个文件(chars.dic;units.dic; words.dic; words-my.dic)拷贝到dic中.

OK,这样就配置成功了,而且还可以使用mmseg4j中文分词。

你可能感兴趣的:(tomcat与solr3.6的整合使用(原创))