先上官方文档:http://www.solr-start.com/info/analyzers/
为啥要自定义分词器?
Index建立时是按分词器的分词结果得到的词进行索引的。Solr默认无中文分词器,因此要自定义分词器。
在server\solr-webapp\webapp\WEB-INF\lib下存放了运行时Lib包,分词器中引用的jar包应放在此目录下。
以配置smart分词器为例:
1 将solr-5.2.1\contrib\analysis-extras\lucene-libs下的lucene-analyzers-smartcn-5.2.1.jar拷贝到server\solr-webapp\webapp\WEB-INF\lib下
2 参考http://blog.csdn.net/xuxiuning/article/details/47748461 配置schema.xml ,
添加如下内容:
<fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
<filter class="solr.SmartChineseWordTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
<filter class="solr.SmartChineseWordTokenFilterFactory"/>
</analyzer>
</fieldType>
这样,在定义Schema时就可以创建text_smart类型的域(filed)了
例如:
<field name="text" type="text_smart" indexed="true" stored="true" multiValued="true"/>
3 在Solr主界面的Analysis里设定FiledName为text,可测试分词效果。