脚本处理器
script 搜索请求处理器拦截搜索请求并添加一个在传入请求上运行的内联 Painless 脚本。该脚本只能在以下请求字段上运行:
fromsizeexplainversionseq_no_primary_termtrack_scorestrack_total_hitsmin_scoreterminate_afterprofile
请求体字段
下表列出了所有可用的请求字段。
| 字段 | 数据类型 | 描述 |
|---|---|---|
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 }"
}
}
]
}