如何在 Kibana 中过滤小于参数的计数器?

Dog*_*las 5 grouping elasticsearch kibana

我有一个类似的问题:如何在 Kibana 上过滤大于计数器的字段?https://github.com/elastic/kibana/issues/9684

在此链接上有一个完美的答案:您需要在 Json Input Advanced Bucket Option 上使用 "{'min_doc_count': X}"。完美,它完全按照我想要的方式运行,除了因为我想要相反的东西,比如“max_doc_count”。

令我惊讶的是,这个选项不存在......有人知道“max_doc_count”相当于什么?

在 SQL 中将类似于:GROUP BY my_field HAVING COUNT(*) < 3

谢谢。

Val*_*Val 5

在 ES 中执行此操作的正确方法是使用带有特殊路径bucket_selector管道聚合_count

POST /_search
{
  "size": 0,
  "aggs": {
    "my_terms": {
      "terms": {
        "field": "my_field.keyword"
      },
      "aggs": {
        "max_doc_count": {
          "bucket_selector": {
            "buckets_path": {
              "count": "_count"
            },
            "script": {
              "source": "params.count < 3"
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在结果中,my_terms聚合将仅包含文档计数 < 3 的存储桶。无需订购任何内容或将您的应用程序编程为忽略任何内容。