Elasticsearch 如何使用聚合计算来自多个文档字段的值

Elasticsearch how count values from multiple document fields using aggregation

假设我在同一个索引中有很多文档如下:

     "_source": {
            "customerId": "100",
            "firstName": "XAaa",
            "lastName": "XBbb",
            "price": 10,
            "revenue": 5
         }

     "_source": {
            "customerId": "100",
            "firstName": "XAaa",
            "lastName": "XBbb",
            "price": 20,
            "revenue": 15
        } 

    "_source": {
            "customerId": "200",
            "firstName": "YAaa",
            "lastName": "yBbb",
            "price": 110,
            "revenue": 20
       }....

问题

如何使 elasticsearch 聚合计算来自相同 customerId 的值??

结果应该是这样的:

          "_source": {
                "customerId": "100",
                "firstName": "XAaa",
                "lastName": "XBbb",
                "price": 30, // (10+20)
                "revenue": 20 //(5+15)
            } 

        "_source": {
                "customerId": "200",
                "firstName": "YAaa",
                "lastName": "yBbb",
                "price": 110,
                "revenue": 20
           }....

谢谢

{
  "size": 0, 
  "aggs": {
    "per_customer": {
      "terms": {
        "field": "customerId",
        "size": 10
      },
      "aggs": {
        "total_price": {
          "sum" : { "field" : "price" }
        },
        "total_revenue": {
          "sum" : { "field" : "revenue" }
        }
      }
    }
  }
}