solr4 中文分词配置

2016-08-06  本文已影响411人  朝圣的路上

关于solr的安装和配置不详述,网上都有。重点说下中文分词。
初学者可直接使用solr自带的中文分词器,smartcn. 下面讲配置方法。我的版本是solr4.10.4

  1. 拷贝$SOLR_HOME/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-4.10.4.jar 到$SOLR_HOME/example/solr-webapp/webapp/WEB-INF/lib. 如果这里拷贝路径发生错误,启动的时候会提示你类似下面的错误;

error loading Smart SmartChineseSentenceTokenizerFactory...

  1. 接下来配置$SOLR_HOME/example/solr/collection1/conf/schema.xml文件,主要添加两处地方;
<fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">  
       <analyzer type="index">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

      </analyzer>

      <analyzer type="query">

         <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

      </analyzer>
       
    </fieldType>

这个是配置分词器

<field name="text" type="text_smart" indexed="true" stored="true" multiValued="true"/>

这里是配置field name. 注意,一定要搞清楚什么是field name. 当启动solr的时候,选中controller会有analysis选项。


solr.png

这里红色标记的就是field name. 所以,你可以随意标记你的field name. 如果你标记为text,或者和其他field name同名. 请注释掉其他同名的filed name设置。我就是开始设置了一个其他名字的filed name。然后用的时候没选择这个filed name。导致我一直以为没有设置成功。还以为是下面这个warning的问题,一直改配置。

org.apache.solr.core.SolrResourceLoader; Solr loaded a deprecated plugin/analysis class [org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory]. Please consult documentation how to replace it accordingly.
上一篇下一篇

猜你喜欢

热点阅读