过滤器上下文
编辑过滤器上下文
编辑在查询中使用 Painless 脚本作为过滤器来包含和排除文档。
变量
-
params
(Map
,只读) - 作为查询的一部分传入的用户定义参数。
-
doc
(Map
,只读) - 包含当前文档的字段,每个字段都是一个
List
的值。
返回值
-
布尔值
- 如果当前文档应作为查询结果返回,则返回
true
,否则返回false
。
API
标准的Painless API可用。
示例
要运行此示例,请首先按照上下文示例中的步骤操作。
此脚本查找所有未售出的且价格低于 25 美元的文档。
doc['sold'].value == false && doc['cost'].value < 25
将cost
定义为脚本参数,可以在脚本查询请求中配置成本。例如,以下请求查找所有低于 25 美元的晚上演出的可用剧院座位。
GET seats/_search { "query": { "bool": { "filter": { "script": { "script": { "source": "doc['sold'].value == false && doc['cost'].value < params.cost", "params": { "cost": 25 } } } } } } }