在elasticsearch中组合两个聚合值

时间:2014-12-04 03:10:52

标签: elasticsearch

我不熟悉弹性搜索并通过mac ID进行统计数据聚合分组,如下所示:

{
    "aggs": {
        "group_by_state": {
                            "terms": {
                              "field": "Clients.MAC"
                             },
                             "aggs": {
                                        "stats_RxBytes": {
                                            "stats": {
                                               "field": "Clients.RxBytes"
                                              }
                                            },
                                        "stats_TxBytes":{
                                            "stats":{
                                              "field": "Clients.TxBytes"
                                              }
                                            }
      }
   }
}

现在我需要将aggs中的两个值组合如下,但不确定如何实现它:

stats_TxBytes.sum + stats_RXBytes.sum 

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用sum aggregation

{
  "aggs": {
    "sum_bytes": {
      "sum": {
        "script": "doc['Clients.RxBytes'].value + doc['Clients.TxBytes'].value"
      }
    }
  }
}

您必须启用动态脚本:script.disable_dynamic: false

但要小心这一点。见this link