You're viewing version 2.16 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Script processor
Introduced 2.8
The script
search request processor intercepts a search request and adds an inline Painless script that is run on incoming requests. The script can only run on the following request fields:
from
size
explain
version
seq_no_primary_term
track_scores
track_total_hits
min_score
terminate_after
profile
For request field definitions, see search request fields.
Request fields
The following table lists all available request fields.
Field | Data type | Description |
---|---|---|
source | Inline script | The script to run. Required. |
lang | String | The script language. Optional. Only painless is supported. |
tag | String | The processor’s identifier. Optional. |
description | String | A description of the processor. Optional. |
ignore_failure | Boolean | If true , OpenSearch ignores any failure of this processor and continues to run the remaining processors in the search pipeline. Optional. Default is false . |
Example
The following request creates a search pipeline with a script
request processor. The script limits score explanation to only one document because explain
is an expensive operation:
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 }"
}
}
]
}