我如何使用solr实现模糊搜索
How can I implement fuzzy search using solr
例如,我有一个包含名字、中间名和姓氏的名字。我需要搜索不同的名称组合,例如 {first name, middle name, last name},{middle name, first name, last name} 等等(6 种组合)。同时,名字也必须用拼音来搜索。就像名字 "John" 一样,它必须选择 "Jonn"。同样对于 "Mohammed" 它必须命中 "Mohammad" 或 "Mouhammed" 此拼音搜索适用于名称的所有三个部分。
名称使用字段类型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 :
This filter creates tokens using the DoubleMetaphone encoding algorithm from commons-codec. For more information, see the Phonetic Matching section.
例如,我有一个包含名字、中间名和姓氏的名字。我需要搜索不同的名称组合,例如 {first name, middle name, last name},{middle name, first name, last name} 等等(6 种组合)。同时,名字也必须用拼音来搜索。就像名字 "John" 一样,它必须选择 "Jonn"。同样对于 "Mohammed" 它必须命中 "Mohammad" 或 "Mouhammed" 此拼音搜索适用于名称的所有三个部分。
名称使用字段类型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 :
This filter creates tokens using the DoubleMetaphone encoding algorithm from commons-codec. For more information, see the Phonetic Matching section.