首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch - buckets_path agg on terms

Elasticsearch - buckets_path agg on terms
EN

Stack Overflow用户
提问于 2020-06-09 03:13:20
回答 1查看 359关注 0票数 1

我正在尝试执行平均术语计数(count_bucket),但出现错误:

代码语言:javascript
复制
"buckets_path must reference either a number value or a single value numeric metric aggregation, got: [Bucket] at aggregation [count_bucket]"

这是我的查询:其中count_bucket是计数项agg,我想要其中的avg。

代码语言:javascript
复制
{
    "size": 0,
    track_total_hits: true,
    "query": {
        "bool": {
            "must": queries,
            "must_not": {
                "exists": {
                    "field": supress
                }
            }
        }
    },
    "aggs": {
        "count_bucket": {
            "terms": {
                "field": field,
                "size": 500,
                "order": {
                    "_key": "desc"
                }
            }
        },
        "avg_count": {
              "avg_bucket": {
                "buckets_path": "count_bucket" 
              }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-06-09 04:21:51

错误消息中描述了该问题:与sumvalue_count等其他聚合不同,术语聚合不返回单个值。因此,您不能对这些存储桶执行avg_bucket聚合。

一个好的解决方案是在每个存储桶上使用value_count聚合来返回单个值,然后您可以对该值执行avg_bucket聚合:

下面是它的外观:

代码语言:javascript
复制
{
    "query": {
        "bool": {
            "must": queries,
            "must_not": {
                "exists": {
                    "field": supress
                }
            }
        }
    },
    "aggs": {
        "count_bucket": {
            "terms": {
                "field": field,
                "size": 500,
                "order": {
                    "_key": "desc"
                }
            },
            "aggs": {
                "docs_count": {
                    "value_count": {
                        "field": field
                    }
                }
            }
        },
        "avg_count": {
                "avg_bucket": {
                    "buckets_path": "count_bucket>docs_count"
                }
            }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62269585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档