gpt4 book ai didi

如果存在多个具有相同值的文档,则 Elasticsearch 计数

转载 作者:行者123 更新时间:2023-12-03 01:52:49 25 4
gpt4 key购买 nike

如果一个字段的值在多个文档中相同,我想要文档的计数。我如何编写一个 DSL 查询来做到这一点?

示例:

假设我有这些文件:

{ _id:1, foo:1}
{ _id:2, foo:1}
{ _id:3, foo:3}
{ _id:4, foo:2}
{ _id:5, foo:3}

如果在多个文档中找到相同的 foo 值,我想要文档计数。在这里,我希望计数为 2。

更新

运行条款查询后:
{
"size": 0,
"aggs": {
"counts": {
"terms": {
"field": "foo"
}
}
}
}

我得到了这个结果:
'aggregations':{
'counts':{
'buckets':[
{'doc_count': 221,'key': '10284'},
{'doc_count': 71,'key': '6486'},
{'doc_count': 71,'key': '7395'}
],
'doc_count_error_upper_bound': 0,
'sum_other_doc_count': 0
}
}

我想要另一个字段为 total_count其值为 3,因为有 3 个 doc_count 大于 1 的键。我该怎么做?

最佳答案

你可以试试简单的terms foo上的聚合像这样的字段:

{
"size": 0,
"aggs": {
"counts": {
"terms": {
"field": "foo"
}
}
}
}

运行这个之后,你会得到
  • 对于键 1:doc_count 2
  • 对于键 3:doc_count 2
  • 对于键 1:doc_count 1
  • 关于如果存在多个具有相同值的文档,则 Elasticsearch 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39037909/

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