脚本处理器

script 搜索请求处理器拦截搜索请求并添加一个在传入请求上运行的内联 Painless 脚本。该脚本只能在以下请求字段上运行:

  • from

  • size

  • explain

  • version

  • seq_no_primary_term

  • track_scores

  • track_total_hits

  • min_score

  • terminate_after

  • profile

请求体字段

下表列出了所有可用的请求字段。

字段 数据类型 描述
source 内联脚本 要运行的脚本。必需。
lang 字符串 脚本语言。可选。仅支持 painless
tag 字符串 处理器的标识符。可选。
description 字符串 处理器的描述。可选。
ignore_failure 布尔值 如果为 true,UDB-SX 忽略此处理器的任何故障并继续运行搜索管道中的其余处理器。可选。默认值为 false

示例

以下请求创建一个包含 script 请求处理器的搜索管道。该脚本将分数解释限制为仅一个文档,因为 explain 是一项开销较大的操作:

PUT /_search/pipeline/explain_one_result
{
  "description": "A pipeline to limit the explain operation to one result only",
  "request_processors": [
    {
      "script": {
        "lang": "painless",
        "source": "if (ctx._source['size'] > 1) { ctx._source['explain'] = false } else { ctx._source['explain'] = true }"
      }
    }
  ]
}