0

如果我的 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

在此处输入图像描述

4

2 回答 2

9

您应该阅读FieldCollapsing重复数据删除(重复数据删除完全阻止文档进入索引,这不是您想要的,但我会将其保留在这里以帮助其他可能适合的读者。)。

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

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

在此处阅读此问题,它可能会解释/建议您应该如何使用 MVF。

Solr 中“多值”字段类型的用途是什么?

于 2012-10-30T17:41:33.603 回答
1

使用您的电子邮件字段作为唯一键如何不允许重复?在 wiki 页面中搜索<uniqueKey>schema.xml https://wiki.apache.org/solr/SchemaXml

于 2012-10-30T17:27:14.757 回答