反向嵌套聚合
您可以将来自嵌套文档的值聚合到其父文档;这种聚合称为 reverse_nested。
您可以使用 reverse_nested 在按嵌套对象的字段分组后,聚合父文档中的字段。reverse_nested 聚合”连接回”根页面,并为每个变体获取其 load_time。
reverse_nested 聚合是嵌套聚合内的一个子聚合。它接受一个名为 path 的选项。此选项定义了 UDB-SX 在文档层次结构中向后回溯多少步来计算聚合。
GET logs/_search
{
"query": {
"match": { "response": "200" }
},
"aggs": {
"pages": {
"nested": {
"path": "pages"
},
"aggs": {
"top_pages_per_load_time": {
"terms": {
"field": "pages.load_time"
},
"aggs": {
"comment_to_logs": {
"reverse_nested": {},
"aggs": {
"min_load_time": {
"min": {
"field": "pages.load_time"
}
}
}
}
}
}
}
}
}
}
示例响应
...
"aggregations" : {
"pages" : {
"doc_count" : 2,
"top_pages_per_load_time" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : 200.0,
"doc_count" : 1,
"comment_to_logs" : {
"doc_count" : 1,
"min_load_time" : {
"value" : null
}
}
},
{
"key" : 500.0,
"doc_count" : 1,
"comment_to_logs" : {
"doc_count" : 1,
"min_load_time" : {
"value" : null
}
}
}
]
}
}
}
}
响应显示 logs 索引中有一个页面的 load_time 为 200,另一个页面的 load_time 为 500。