Solr中默认的中文分词是用Lucene的一元分词包。 现在说明在Solr5.0中配置Lucene的SmartCN中文分词包。
1,进入Solr的安装目录,我这里是:/root/nutch/solr-5.0.0
把contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-5.0.0.jar包复制到solr的启动目录的lib目录下。
- # cp ./contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-5.0.0.jar ./server/solr-webapp/webapp/WEB-INF/lib/
2,修改managed-schema配置文件。此文件在/root/nutch/solr-5.0.0/server/solr/mycore1/conf目录下,其中mycore1是建立的core名称。
在/root/nutch/solr-5.0.0/server/solr/mycore1/conf/managed-schema配置文件中添加如下信息:#vi managed-schema
在schema.xml 文件的接近末尾的地方增加我们的字段类型的
- <fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">
- <analyzer type="index">
- <!-- 此处需要配置主要的分词类 -->
- <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
- <!--
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
- <filter class="solr.LowerCaseFilterFactory"/>
- -->
- <!-- in this example, we will only use synonyms at query time
- <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
- -->
- <filter class="solr.SmartChineseWordTokenFilterFactory"/>
- </analyzer>
- <analyzer type="query">
- <!-- 此处配置同上 -->
- <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
- <!--
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- -->
- <filter class="solr.SmartChineseWordTokenFilterFactory"/>
- </analyzer>
- </fieldType>
字段需要使用text_smartcn的 就是用下面的语句,比如我的是content字段
<field name="content" type="text_smartcn" indexed="true" stored="true"/>