过滤器上下文
编辑过滤器上下文编辑
在查询中使用 Painless 脚本作为 过滤器 来包含和排除文档。
变量
-
params
(Map
, 只读) - 作为查询的一部分传递的用户定义参数。
-
doc
(Map
, 只读) - 包含当前文档的字段,每个字段都是一个
List
值。
返回值
-
boolean
- 如果当前文档应作为查询结果返回,则返回
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 } } } } } } }