(十) 在solr中实现同义词搜索

时间:2022-02-08 03:08:27

在为用户提供搜索服务时,为了提供更好的用户体验,我们需要很好的处理同义词搜索。

例如用户在搜索的关键词中含有“1”,需要将其转为为“一”,这时可以采用以下的方式去实现:

首先,配置schema.xml文件,定义相应的域类型

<fieldtype name="text_search" class="solr.TextField" omitNorms="true">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
   </fieldtype>
synonyms.txt:
1 => 一