删除文档中的重复记录(Elasticsearch)

时间:2019-03-12 08:33:10

标签: sql-server elasticsearch

我正在编写自己的用于Elasticsearch和SQL Server之间集成的应用程序,并将所有数据从SQL Server中的选定表发送到Elasticsearch,但是我有一个问题。

如果我在应用程序中设置了将每分钟挂接到该表的内容,它将每分钟再次将这些记录存储在Elasticsearch中。这会在Elasticsearch文档中产生很多重复的记录。

Elasticsearch中是否存在一个查询,可以检查是否有重复记录(每个属性中都重复)并删除重复记录?

1 个答案:

答案 0 :(得分:1)

可以完成此操作,但不能通过特殊查询来完成,而只需更改索引文档的方式即可。

如何确保文件的唯一性?

这个问题可能已经here得到了回答,重点是明确定义插入文档的_id

要实现您想要的目标,您可以在将整个json发送给Elasticsearch并将其用作_id之前尝试计算整个json的哈希值。 (请确保JSON以稳定的方式序列化为字符串,就像sort_keys在python中一样。)

如果您还有其他唯一标识符,最好使用它代替数据哈希。

不幸的是,现有索引应重新索引(_id以新方式计算)。

希望有帮助!