0
比如我實現模糊搜索,我有跟名字,中間名和姓的名稱。我需要搜索名字的不同組合,如{名,中間名,姓氏},{中間名,名,姓}等等(6種組合)。同時,名字也必須用語音搜索。就像名字「John」一樣,它必須選擇「Jonn」。亦作「穆罕默德」,必須會一炮打響「穆罕默德」或「Mouhammed」這個拼音搜索是適用於所有名的三個部分。如何使用Solr的
比如我實現模糊搜索,我有跟名字,中間名和姓的名稱。我需要搜索名字的不同組合,如{名,中間名,姓氏},{中間名,名,姓}等等(6種組合)。同時,名字也必須用語音搜索。就像名字「John」一樣,它必須選擇「Jonn」。亦作「穆罕默德」,必須會一炮打響「穆罕默德」或「Mouhammed」這個拼音搜索是適用於所有名的三個部分。如何使用Solr的
使用的字段類型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"/>
該濾波器產生使用從公共的編解碼器的編碼DoubleMetaphone算法令牌。有關更多信息,請參見Phonetic Matching部分。
db包含各種名字,比如「Bell Aleksander Greham」,「Graham Alexander Bell」等。如果我給一個名字「Alexander Graham Bell」作爲查詢,然後它會返回所有這些名字嗎? –
是的。它會返回所有這些名稱忽略順序 –
我已經將上面的代碼添加到schema.xml。但是,當我搜索包含名和中間名之間的空格的字符串時,它顯示錯誤。 –