是否有相当于Java本分聚集一码。我需要的Java代码来构建子聚集对象。
{
"query": {
"SOME BOOL QUERIES HERE"
},
"aggs" : {
"trs_timestamp" : {
"date_histogram" : {
"field" : "trs_timestamp",
"interval" : "day"
},
"aggs" : {
"AvgTT" : { "avg" : { "field" : "action_time" }},
"AvgST" : { "avg" : { "field" : "st" }},
"AvgCALC" : { "avg" : { "field" : "ncalc" }},
"AvgRC" : { "avg" : { "field" : "rc" }},
"AvgFR" : { "avg" : { "field" : "st" }}
}
}
}
}
您可以使用Elasticsearch Java API和AggregationBuilders
为此,例如:
SearchResponse response = client.prepareSearch()
.addAggregation(AggregationBuilders.avg("AvgTT").field("action_time"))
.addAggregation(AggregationBuilders.avg("AvgST").field("st"))
.addAggregation(AggregationBuilders.avg("AvgCALC").field("ncalc"))
.addAggregation(AggregationBuilders.avg("AvgRC").field("rc"))
.addAggregation(AggregationBuilders.avg("AvgFR").field("st"))
.execute()
.actionGet();
举例:
SearchResponse sr = node.client().prepareSearch()
.setQuery( /* your query */ )
.addAggregation( /* add an aggregation */ )
.execute().actionGet();
你可以看到,有addAggregation
不set
这意味着你可以添加多个聚合到查询。 https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-aggs.html