我有一个包含多个重复条目的索引。它们具有不同的ID,但其他字段具有相同的内容。
例如:
{id: 1, content: 'content1'} {id: 2, content: 'content1'} {id: 3, content: 'content2'} {id: 4, content: 'content2'}
删除重复项后:
{id: 1, content: 'content1'} {id: 3, content: 'content2'}
有没有一种方法可以删除所有重复项并仅保留一个不同的条目,而无需手动比较所有条目?
我使用rails,如有必要,我将使用FORCE=y命令导入内容,该命令将删除并重新索引该索引和类型的所有内容……但是不确定您在哪个环境中运行ES。我只能看到的问题是数据源是否您正在从中导入(即数据库)的记录重复。我想我首先会看到数据源是否可以固定,如果可行的话,然后重新索引所有内容;否则,您可以尝试创建一个自定义导入方法,该方法仅为每个记录的重复项之一编制索引。
FORCE=y
此外,我知道这与您要删除重复的条目不符,但是您可以简单地自定义搜索,以便仅通过最新的“时间戳记”或索引重复数据删除的数据来返回重复的ID之一,并且按您的内容字段分组-查看此帖子是否有帮助。即使这仍会在您的索引中保留重复的记录,但至少它们不会出现在搜索结果中。
我也发现了这一点:Elasticsearch删除重复项
我尝试过考虑多种可能的情况,以供您查看这些选项中的任何一项是否有效,或者至少可以临时解决。