如果我的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
答案 0 :(得分:8)
你应该在FieldCollapsing以及Deduplication上进行一些阅读(重复数据删除会阻止文档进入索引,这不是你想要的,但我会在这里帮助它其他读者可能适合。)
要使用FieldCollapsing,您可以使用查询并拥有group: true , group.field : email
但是,查看您提供的文档示例,我可能会说您设计的架构错误,而您实际想要使用的是多值字段。
在这里阅读这个问题,它可能会解释/建议你应该如何使用MVF。
答案 1 :(得分:1)
如何将您的电子邮件字段用作唯一键,以便不允许重复? 在维基页面中搜索schema.xml https://wiki.apache.org/solr/SchemaXml
的<uniqueKey>