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