在elasticsearch查询结果中只显示一次不同目录中的同一篇文章

kx1ctssn  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(202)

我需要一些帮助来为elasticsearch中的以下问题找到一个概念:
假设我们有一个产品数据库,里面有来自不同供应商的丰富产品信息。每个供应商不断向我们发送其产品目录中添加、更新或删除的产品信息更新。供应商a销售的产品也可能由供应商b提供。通过索引前的预处理,我们可以确保相同的产品在两个供应商的数据集中使用完全相同的产品编号。
我想用一个例子来说明这一点:
供应商a
产品#978001-“关于搜索的大书”
产品#978002-“学习弹性堆栈”
产品#978003-“相关搜索”
供应商b
产品#978001-“关于搜索的大书”
产品#978002-“学习弹性堆栈”
产品#978004-“掌握elasticsearch”
我们还不确定是将不同供应商的数据存储在不同的es索引中,还是仅通过每个文档中的一个属性将它们分开。两个供应商的产品目录都包含了大约1000万种产品,其中50%的产品都是由两个供应商提供的。
我们想为不同的客户提供一个搜索界面。有些人更喜欢供应商a发布的数据,有些人更喜欢供应商b发布的数据。因此,每个客户都定义了自己的优先数据供应商,在构建elasticsearch查询时,这些信息是可用的。
在执行搜索时,我们希望生成一个包含两个供应商的所有匹配产品的搜索结果。但是每个产品应该只包含在结果中一次。
以我们的例子来说,结果中应该包括所有产品:
搜索结果
产品#978001-“关于搜索的大书”(2家供应商)
产品#978002-“learning elastic stack”(2家供应商)
产品#978003-“相关搜索”(供应商a)
产品#978004-“掌握elasticsearch”(供应商b)
如何实现在搜索结果中按产品编号消除双条目?
如果你有一个想法,能把我推向正确的方向,找到一个存储数据的结构,我将不胜感激。
事先非常感谢,
菲利普

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题