过滤器上下文

编辑

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