桶选择器聚合上下文

编辑

bucket_selector 聚合中使用 Painless 脚本确定是否应保留或过滤掉桶。

变量

编辑
params (Map,只读)
作为查询一部分传入的用户定义参数。这些参数包括作为buckets_path一部分定义的值。

返回

编辑
布尔值
如果应保留桶,则为 true;如果应过滤掉桶,则为 false。

标准的Painless API可用。

示例

编辑

要运行此示例,请首先按照上下文示例中的步骤操作。

bucket_selector聚合中的 Painless 上下文中提供了一个params映射。此映射包含用户指定的自定义值以及buckets_path属性中指定的其他聚合的值。

与其他一些聚合上下文不同,bucket_selector上下文必须返回布尔值truefalse

此示例查找每个桶的最大值,添加用户指定的 base_cost,并保留所有大于10的桶。

params.max + params.base_cost > 10

请注意,这些值是从params映射中提取的。该脚本采用表达式形式,返回truefalse。在上下文中,聚合如下所示

GET /seats/_search
{
  "size": 0,
  "aggs": {
    "theatres": {
      "terms": {
        "field": "theatre",
        "size": 10
      },
      "aggs": {
        "max_cost": {
          "max": {
            "field": "cost"
          }
        },
        "filtering_agg": {
          "bucket_selector": {
            "buckets_path": { 
              "max": "max_cost"
            },
            "script": {
              "params": {
                "base_cost": 5 
              },
              "source": "params.max + params.base_cost > 10"
            }
          }
        }
      }
    }
  }
}

buckets_path指向最大聚合 (max_cost) 并向params映射添加max变量

用户指定的base_cost也添加到params映射中