Hi,
I'm having a lot of trouble using the Java API to get an average aggregation over a nested field. This is the query I'm sending:
{
"aggregations" : {
"nested" : {
"nested" : {
"path" : "hops"
},
"aggregations" : {
"aggregationFilter" : {
"filter" : {
"bool" : {
"must" : {
"term" : {
"hops.adapterName" : "myadapter"
}
}
}
}
},
"average0" : {
"avg" : {
"field" : "serverProcessingTime"
}
},
"average1" : {
"avg" : {
"field" : "roundTripTime"
}
},
"average2" : {
"avg" : {
"field" : "bytesReceived"
}
}
}
}
}
}
And this the result I get:
{
"hits": {
"total": 2,
"hits": [],
"max_score": 0
},
"_shards": {
"total": 1,
"failed": 0,
"successful": 1
},
"timed_out": false,
"took": 182,
"aggregations": {
"nested": {
"aggregationFilter": {
"doc_count": 1
},
"average0": {
"value": 35
},
"doc_count": 2,
"average2": {
"value": null
},
"average1": {
"value": 100
}
}
}
}
It looks like the filter was applied (doc_count = 1), but the results of that weren't applied to the average aggregation (doc_count = 2). I think I need to structure the query slightly differently, but can't figure out how, spent a lot of time with trial and error on this, and no success.
Hoping the community can offer advice.
Many thanks