欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

为solr配中文分词

为solr配中文分词

solr版本:solr-4.10.3.
关于分词,看起来用得比较多的就是mmseg4j, 这时候网上的最新版是mmseg4j-1.9.1.zip。
我下载下来,试了半天,没有成功。直接把分词器换成”com.chenlb.mmseg4j.solr.MMSegTokenizerFactory”的结果是:
java.lang.AbstractMethodError: org.apache.lucene.analysis.util.TokenizerFactory.create(Lorg/apache/lucene/util/AttributeFactory;Ljava/io/Reader;)Lorg/apache/lucene/analysis/Tokenizer;
目前还不知道应该怎么处理。

后来发现,solr其实自带一个中文的分词器。这个文件在solr根目录下的路径是这样的。
./contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-4.10.3.jar

为了启用这个分词,需要将这个文件拷贝到solr-4.10.3/node1/solr-webapp/webapp/WEB-INF/lib 下。
然后更新solr-4.10.3/node1/solr/collection1/conf/schema.xml 如下:
       


    <fieldType name="text_general" c l ass="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <!-- <tokenizer class="solr.StandardTokenizerFactory"/> -->
        <tokenizer c l ass="solr.SmartChineseSentenceTokenizerFactory" />
        <filter c l ass="solr.SmartChineseWordTokenFilterFactory" />
      </analyzer>
      <analyzer type="query">
        <!-- <tokenizer class="solr.StandardTokenizerFactory"/> -->
        <tokenizer c l ass="solr.SmartChineseSentenceTokenizerFactory" />
        <filter c l ass="solr.SmartChineseWordTokenFilterFactory" />
      </analyzer>
    </fieldType>
    
然后重启solr即可。
下面是一个分词实验的结果,貌似还可以:
       

solr分词solr分词



       

本文地址: http://www.bagualu.net/wordpress/archives/4152 转载请注明




   


普通分类: