过滤器上下文

编辑

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