过滤器上下文编辑

在查询中使用 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
            }
          }
        }
      }
    }
  }
}