如何使用solr实现模糊搜索

时间:2017-07-10 04:38:37

标签: solr fuzzy

例如,我有一个名字,中间名和姓氏的名字。我需要搜索名称的不同组合,如{名字,中间名,姓氏},{中间名,名字,姓氏}等等(6种组合)。同时,名称也必须用拼音搜索。就像“John”这个名字一样,它必须选择“Jonn”。同样对于“穆罕默德”来说,它必须成为热门歌曲“穆罕默德”或“穆罕默德”。这种语音搜索适用于所有三个部分。

1 个答案:

答案 0 :(得分:0)

使用fieldType phonetic_en作为名称

默认架构中包含的字段类型phonetic_en,如果不使用以下架构:

<fieldType name="phonetic_en" stored="false" indexed="true" class="solr.TextField" >
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
  </analyzer>
</fieldType>

示例:

<field name="cfname" type="phonetic_en" indexed="true" stored="false"/>

DoubleMetaphoneFilterFactory

  

此过滤器使用commons-codec中的DoubleMetaphone编码算法创建标记。有关详细信息,请参阅Phonetic Matching部分。