Link Search Menu Expand Document Documentation Menu

反向嵌套聚合

您可以将嵌套文档中的值聚合到其父级;这种聚合被称为 reverse_nested。您可以使用 reverse_nested 在按嵌套对象中的字段分组后,从父文档中聚合字段。reverse_nested 聚合“返回”到根页面,并获取每个变体的 load_time

reverse_nested 聚合是嵌套聚合中的一个子聚合。它接受一个名为 path 的选项。此选项定义了 OpenSearch 在计算聚合时需要向文档层次结构后退多少步。

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

响应显示日志索引有一个 load_time 为 200 的页面,以及一个 load_time 为 500 的页面。

剩余 350 字符

有问题?

想要贡献?