Link Search Menu Expand Document Documentation Menu

脚本处理器

2.8 版本引入

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

  • from
  • size
  • explain
  • version
  • seq_no_primary_term
  • track_scores
  • track_total_hits
  • min_score
  • terminate_after
  • profile

有关请求字段定义,请参阅搜索请求字段

请求正文字段

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

字段 数据类型 描述
source 内联脚本 要运行的脚本。必填。
lang 字符串 脚本语言。可选。仅支持 painless
tag 字符串 处理器的标识符。可选。
描述 字符串 处理器的描述。可选。
ignore_failure 布尔型 如果为 true,OpenSearch 会忽略此处理器发生的任何失败并继续运行搜索管道中的其余处理器。可选。默认为 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 }"
      }
    }
  ]
} 

剩余 350 字符

有问题?

想贡献?