如何获得kibana 4.x

时间:2016-12-07 08:55:57

标签: elasticsearch kibana kibana-4

我需要使用脚本字段获取 Kibana 中字段的总值。

例如,如果 id 字段的值为1,2,3,4,5

我期待sum所有id的值,我期待输出为15。

我需要在获得每个字段的总数后才能达到以下公式。

lifetime=a-b-c-(d-e-f)*g

这里 a,b,c,d,e,f,g 都是每个字段值的总和。

有关详细信息,请参阅由我提出的question

1 个答案:

答案 0 :(得分:1)

你绝对可以使用总和聚合来获得id的总和,但是为了进一步等同你的公式,你可以看一下pipeline aggregations来使用和值进行进一步的计算。

查看bucket script aggregation,使用适当的存储分路径来汇总聚合器,您就可以实现解决方案。

样本文件

{
  "a":100,
  "b":200,
  "c":400,
  "d":600
}

查询

 {
   "size": 0,
   "aggs": {
      "result": {
         "terms": {"script":"'nice to have it here'"},
         "aggs": {
            "suma": {
                "sum": {
                    "field": "a"
                }
            },
            "sumb": {
                "sum": {
                  "field": "b"
                }
            },
            "sumc": {
                "sum": {
                  "field": "c"
                }
            },
            "equation": {
                "bucket_script": {
                    "buckets_path": {
                        "suma": "suma",
                        "sumb": "sumb",
                        "sumc" : "sumc"
                    },
                    "script": "suma + sumb + 2*sumc"
                }
            }
        }
      }
   }
}

现在,您可以在每个sum agg上添加术语过滤器,以过滤每个总和聚合器的总和。