为了让例子简单,我们假设索引库只有两个字段。
1.在solr的collection1索引库conf目录下schema.xml 中加入以下两个字段:
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="description" type="text_ik" indexed="true" stored="true" />
在 schema.xml 中增加 text_ik 类型的ik分词定义:里面配置同义词过滤器synonyms="synonyms.txt"指定了同义词文件的位置,这里与schema.xml 同目录
<!-- 集成IK分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="True" useSmart="false" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
3.在相同的conf目录下的 synonyms.txt 中增加
aaa => 中国民生银行
配置完成。当搜索description:aaa时候会搜出"aaa,中国民生银行"条件的记录