从 Kibana 可视化中删除等于零的总和

时间:2021-01-26 18:57:01

标签: elasticsearch kibana elastic-stack elasticsearch-aggregation

[Kibana 7.9.0v]

[编辑] Country shipment amounts

我一直试图从条形图中删除总和为 0 的字段。

目前,我正在进行总和聚合并在条形图上显示结果。总和是正确的,但图表显示的总和为 0。有些文档的字段值为 0,我们将此字段称为 quantity,因此 'quantity': 0 是可能的。我只想看到总和 >= 1。我知道如果我在 'quantity' is not 0 处添加过滤器我可以做到这一点,但我知道 Kibana 过去常常忽略这些零和。

我已尝试将 {"min_doc_count": 1} 添加到 Metrics & Buckets 部分的 JSON 输入部分,但出现错误。我还研究了高级设置,但没有找到设置最小值的部分。

1 个答案:

答案 0 :(得分:0)

这只能通过 bucket_selector aggregation 过滤掉零桶。不幸的是,Kibana 尚不支持它——尽管它获得了很高的投票feature request

在它可用之前,您需要使用原始查询 DSL —— 类似以下内容:

POST countries/_search
{
  "size": 0,
  "aggs": {
    "by_country": {
      "terms": {
        "field": "country.keyword",
        "size": 10,
        "order": {
          "sum_agg": "desc"
        }
      },
      "aggs": {
        "sum_agg": {
          "sum": {
            "field": "amount"
          }
        },
        "bucket_selector_agg": {
          "bucket_selector": {
            "buckets_path": {
              "sum_agg": "sum_agg"
            },
            "script": "params.sum_agg > 0"          <---
          }
        }
      }
    }
  }
}

并在 Kibana 之外对其进行可视化。