例如,我有一个名字,中间名和姓氏的名字。我需要搜索名称的不同组合,如{名字,中间名,姓氏},{中间名,名字,姓氏}等等(6种组合)。同时,名称也必须用拼音搜索。就像“John”这个名字一样,它必须选择“Jonn”。同样对于“穆罕默德”来说,它必须成为热门歌曲“穆罕默德”或“穆罕默德”。这种语音搜索适用于所有三个部分。
答案 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"/>
此过滤器使用commons-codec中的DoubleMetaphone编码算法创建标记。有关详细信息,请参阅Phonetic Matching部分。