查找重复文档

时间:2015-11-27 05:48:48

标签: elasticsearch

我有一些文件的ID是随机生成的。这里的问题是我需要在这些文件中找到重复的内容。我有三个字段,两个文件不应该相同。那么如何根据多个字段检查重复项?

示例文件

document 1 = {
"process" : "business",
"processId" : 5433321,
"country" : "US"
}

document 2 = {
"process" : "operations",
"processId" : 334233,
"country" : "UK"
}

document 3 = {
"process" : "business",
"processId" : 5433321,
"country" : "US"
}

在这里,您可以看到,文档1和文档3是相同的,但它们在我的数据库中具有不同的ID,因此作为单独的文档存在。所以在运行中我需要找到上面的重复项,如果可能的话,只保留一个。

1 个答案:

答案 0 :(得分:0)

这里最好的选择是围绕文档ID建模您的文档。现在,对于每个唯一文档,创建一个docID,它是文档内容的哈希值。这可确保索引中只存在一个唯一文档。接下来使用_create API创建文档。这将使具有相同文档ID的重写文档上的所有请求失败。

您可以进一步了解其他重复问题及其解决方案here