SOLR搜索:消除重复的电子邮件地址

时间:2012-10-30 17:23:24

标签: solr

如果我的SOLR索引中有2条记录使用相同的电子邮件地址,并且我的关键字搜索在结果集中获取了它们,我该如何显示其中一条。例如;

记录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搜索中查询仅显示一条记录?

注意:我想将这两个记录保存到我的SOLR索引中。


回复@Layke

enter image description here

2 个答案:

答案 0 :(得分:8)

你应该在FieldCollapsing以及Deduplication上进行一些阅读(重复数据删除会阻止文档进入索引,这不是你想要的,但我会在这里帮助它其他读者可能适合。)

要使用FieldCollapsing,您可以使用查询并拥有group: true , group.field : email

但是,查看您提供的文档示例,我可能会说您设计的架构错误,而您实际想要使用的是多值字段。

在这里阅读这个问题,它可能会解释/建议你应该如何使用MVF。

What is the use of "multiValued" field type in Solr?

答案 1 :(得分:1)

如何将您的电子邮件字段用作唯一键,以便不允许重复? 在维基页面中搜索schema.xml https://wiki.apache.org/solr/SchemaXml

<uniqueKey>