0

SOLR インデックスに同じメール アドレスで 2 つのレコードがあり、キーワード検索で両方のレコードが結果セットに含まれている場合、そのうちの 1 つを表示するにはどうすればよいですか。例えば;

レコード 1:

<doc>
     <id>123</id>
     <name>Adil Malik</name>
     <email>abc@hotmail.com</email>
     <jobtitile>Software Engineer</jobtitle>
</doc>

レコード 2:

<doc>
     <id>456</id>
     <name>Adil Malik</name>
     <email>abc@hotmail.com</email>
     <jobtitile>Database Developer</jobtitle>
</doc>

「abc@hotmail.com」で検索すると、両方のレコードが返されますが、どちらかを表示したいです。同じ電子メール アドレスを持つレコードが 2 つある場合、SOLR 検索でクエリを実行して 1 つのレコードのみを表示するにはどうすればよいですか?

注: 両方のレコードを SOLR インデックスに保持したいと考えています。


@Laykeへの返信

ここに画像の説明を入力

4

2 に答える 2

9

FieldCollapsing重複排除についても読む必要があります(重複排除により、ドキュメントがインデックスにまったく入力されなくなりますが、これは望ましくありませんが、これが適切な場合に他の読者を助けるためにここに残しておきます)。

FieldCollapsing を使用するには、クエリを使用して、group: true , group.field : email

ただし、提供されたドキュメントの例を見ると、スキーマを間違って設計しており、実際に何をしたいのか、複数の値フィールドを使用していると思います。

ここでこの質問を読んで、代わりに MVF を使用する方法を説明/アドバイスすることができます。

Solrでの「multiValued」フィールドタイプの使用は何ですか?

于 2012-10-30T17:41:33.603 に答える
1

電子メール フィールドを一意のキーとして使用して、重複が許可されないようにするにはどうすればよいですか? <uniqueKey>wiki ページで schema.xml を検索します https://wiki.apache.org/solr/SchemaXml

于 2012-10-30T17:27:14.757 に答える