solr6使用ansj做中文分词

solr中有自带的中文分词,不过它将中文按一个一个字进行分词,这就导致搜索出的结果让人不满

solr6使用ansj做中文分词


这里以text_general字段为例,managed-schema中的配置是这样写的:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

生成索引和查询使用的都是solr.StandardTokenizerFactory

官方文档有详细介绍:https://cwiki.apache.org/confluence/display/solr/Tokenizers