検索条件に一致する検索結果を返すsolr検索ベースの重複除外システムをセットアップしています。データベースからデータを取得し、Solr サーバーにインデックス付きドキュメントを作成するために、dataimport ハンドラーを使用しました。
私のsolrスキーマは次のとおりです。
<field name="customer_id" type="int" indexed="true" stored="true" required="true" />
<field name="fname" type="phonetic" indexed="true" stored="true" />
<field name="lname" type="phonetic" indexed="true" stored="true"/>
<field name="address" type="text_en" indexed="true" stored="true" />
<field name="city" type="string" indexed="true" stored="true" />
<field name="state" type="string" indexed="true" stored="true" />
<field name="zipcode" type="string" indexed="true" stored="true" />
<field name="telephone" type="string" indexed="true" stored="true" />
上記のように、DoubleMetaphoneFilterFactory を使用して、名 (fname) および姓 (lname) フィールドのタイプを音声検索用の音声として指定しました。音声フィールド タイプの説明は次のとおりです。
<fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="15" side="front"/>
<filter class="solr.DoubleMetaphoneFilterFactory" inject="true"/>
</analyzer>
</fieldtype>
検索で、いずれかの検索フィールドだけでなく、指定したすべてのクエリ フィールドに一致するドキュメントが返されるようにします。
私の問題は、fname、lname、または address のいずれかを単独で検索すると、結果は非常に関連性がありますが、プライマリ検索クエリと一緒にフィルター クエリを使用すると、両方の検索条件からの結果の結合が結果に含まれることです。
誰かが私が間違っていることを指摘してください。また、重複した顧客レコードを特定できる銀行の重複除外システム用の solr スキーマを設計するために留意すべきベスト プラクティスはありますか。
前もって感謝します!!