gpt4 book ai didi

ElasticSearch:查找具有多个相同字段的文档

转载 作者:行者123 更新时间:2023-12-02 22:19:33 25 4
gpt4 key购买 nike

我有一个 ElasticSearch 索引,里面有很多文档。数据模型上大约有 20 个字段;其中,有 5 个,如果它们相同,我会得出结论,该文件是重复的。所以基本上,我想对在所有 5 个字段中具有相同值的文档进行分组,并返回每个生成的存储桶中的文档(而不仅仅是聚合值)。

ElasticSearch 能做到吗?

最佳答案

所以简短的回答是肯定的,elasticsearch 绝对可以做到这一点,如何从下面的简短示例中看出:

{
"filtered": {
"query": {
// Your query goes here
}
},
"filter": {
"script": {
"script": "doc['field1'].value == doc['field2'].value == doc['field3'].value == doc['field4'].value"
}
}
}
}

我只在 2 个字段上尝试过,但我认为它应该适用于更多的字段。

您基本上是在使用过滤器来删除那些字段彼此不完全相同的文档。希望这会有所帮助。

如果您想将 documentA 与 documentB 进行匹配,并查看它们的 5 个字段是否相同,那将是一个不同的问题。

为了解决这个问题,我的建议是编写一个脚本,一次获取一个文档,然后对您要查找的字段进行 Elasticsearch 查询过滤,看看是否出现任何其他文档。如果有,请将其移除并重复该过程。如果没有匹配项,则继续下一个文档。当没有更多文件需要检查时,您就完成了。 (您可能希望保留一个文档计数器或文档名称列表以跟踪您何时完成)

这可能不是您正在寻找的干净的 elasticsearch 方法,可能有更好的方法,但这是解决您的问题的一种方法。

关于ElasticSearch:查找具有多个相同字段的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com