桶选择器聚合上下文
编辑桶选择器聚合上下文
编辑在 bucket_selector
聚合中使用 Painless 脚本来确定是否应保留或过滤掉一个桶。
变量
编辑-
params
(Map
,只读) - 作为查询一部分传入的用户定义参数。这些参数包括作为
buckets_path
一部分定义的值。
返回
编辑- 布尔值
- 如果应该保留桶,则为 True;如果应该过滤掉桶,则为 False。
API
编辑可以使用标准的 Painless API。
示例
编辑要运行此示例,请首先按照上下文示例中的步骤操作。
bucket_selector
聚合中的 Painless 上下文提供了一个 params
映射。此映射包含用户指定的自定义值,以及 buckets_path
属性中指定的其他聚合的值。
与其他一些聚合上下文不同,bucket_selector
上下文必须返回布尔值 true
或 false
。
此示例查找每个桶的最大值,添加用户指定的 base_cost,并保留所有大于 10
的桶。
params.max + params.base_cost > 10
请注意,这些值是从 params
映射中提取的。脚本的形式是一个返回 true
或 false
的表达式。在上下文中,聚合看起来像这样:
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" } } } } } } }