从搜索结果中删除重复项

时间:2014-06-06 11:32:48

标签: elasticsearch

我们有一个如下所示的产品列表:

{"name": "", "image_url":"", tags:0}

问题是,有相当数量的重复产品。由于数据的庞大规模,没有真正的方法来控制向弹性搜索添加重复项,因此我正在寻找一种在查询时过滤掉重复项的方法。

重复产品被定义为"具有相同名称和image_url字段的产品"。此外,如果产品的标签数量超过零,那么我们绝不想将其从搜索结果中删除!

我有什么想法可以完成这件事吗?

1 个答案:

答案 0 :(得分:1)

我有类似的问题。有几种可能的方法。

1 - 您可以在编制索引时处理该问题。在我的代码中,我创建了一个存储索引内容的Java derby DB。 DB的表在索引内容上有一个主键。当新索引到达时,我尝试将其插入到数据库中。如果内容是唯一的,则将其插入到DB中,然后将索引插入ES。如果主键被违反(内容已经存在),我将不会将其摄取到ES中。

2 - 将所有内容摄取到ES中。每天/每小时运行一个脚本,下载内容并查询ES。如果发现双重性,则将其删除。