脚本处理器
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 }"
}
}
]
}