solr4 中文分词配置


关于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.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容