elasticsearch 嵌套聚合时弹性存储桶过多异常

fkaflof6  于 2023-04-05  发布在  ElasticSearch
关注(0)|答案(1)|浏览(195)

我正在运行聚合

{
      "metrics": [
        {
          "label": "person_1",
          "id": ""
        },
        {
          "label": "person_2",
          "id": ""
        },
        ...
      ]
    }

使用以下查询:

{
  "confusionMetrics": {
    "nested": {
      "path": "metrics"
    },
    "aggs": {
      "metricNameFilter": {
        "filter": {
          "term": {
            "metrics.id": ...
          }
        },
        "aggs":...
      }
    }
  }
}

并得到一个错误,即即使在将集群限制从10,000提高到〉50,000之后,查询也超过了ES设置的桶限制。
从ES文档中,我了解到查询为我正在迭代的嵌套对象中的每个元素创建桶。是否有一种方法可以迭代'metrics'对象中的元素而不为它们创建桶,或者减少生成的桶的数量?

tyu7yeag

tyu7yeag1#

对于任何研究这个问题的人,我通过向查询添加脚本agg来解决这个问题,该脚本迭代不同的元素。它不是那么优雅,但工作得很好,并大大减少了嵌套迭代生成的桶的数量。

相关问题