首页 > 解决方案 > Elasticsearch - 针对聚合的查询字段

问题描述

我正在探索使用 elasticsearch 查询和聚合数据的便利性。但我无法在单个查询中旋转和聚合数据,如下所示:

考虑数据:

在此处输入图像描述

有没有一种方法可以查询以下结果,该结果对值进行旋转和聚合,如下所示:

在此处输入图像描述

要求的结果:

{  
   {  
      "A":a1,
      "B":b1,
      "Value":3
   },
   {  
      "A":a1,
      "B":b2,
      "Value":3
   },
   {  
      "A":a2,
      "B":b2,
      "Value":4
   },
   {  
      "A":a1,
      "B":b3,
      "Value":11
   }
}

标签: elasticsearchelasticsearch-aggregation

解决方案


是的,您可以为and嵌套两个terms聚合,就像这样,您将得到您期望的结果:AB

{
  "size": 0,
  "aggs": {
    "A": {
      "terms": {
        "field": "A"
      },
      "aggs": {
        "B": {
          "terms": {
            "field": "B"
          },
          "aggs": {
            "value_sum": {
              "sum": {
                "field": "Value1"
              }
            }
          }
        }
      }
    }
  }
}

推荐阅读