Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Elasticsearch如何使用聚合计算多个文档字段中的值_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Lucene_Aggregation_Elastic Stack - Fatal编程技术网 elasticsearch,lucene,aggregation,elastic-stack,Java,elasticsearch,Lucene,Aggregation,Elastic Stack" /> elasticsearch,lucene,aggregation,elastic-stack,Java,elasticsearch,Lucene,Aggregation,Elastic Stack" />

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

Java Elasticsearch如何使用聚合计算多个文档字段中的值,java,elasticsearch,lucene,aggregation,elastic-stack,Java,elasticsearch,Lucene,Aggregation,Elastic Stack,假设我在同一索引中有许多文档,如下所示: "_source": { "customerId": "100", "firstName": "XAaa", "lastName": "XBbb", "price": 10, "revenue": 5 } "_source": { "customerId": "100",

假设我在同一索引中有许多文档,如下所示:

     "_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" }
        }
      }
    }
  }
}