Create or update a script or search template
Generally available
Creates or updates a stored script or search template.
Required authorization
- Cluster privileges:
manage
Path parameters
-
The identifier for the stored script or search template. It must be unique within the cluster.
-
The context in which the script or search template should run. To prevent errors, the API immediately compiles the script or template in this context.
Query parameters
-
The context in which the script or search template should run. To prevent errors, the API immediately compiles the script or template in this context. If you specify both this and the
<context>
path parameter, the API uses the request path parameter. -
The period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. It can also be set to
-1
to indicate that the request should never timeout.Values are
-1
or0
. -
The period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error. It can also be set to
-1
to indicate that the request should never timeout.Values are
-1
or0
.
Body
Required
-
Hide script attributes Show script attributes object
source
string | object Required One of: Hide attributes Show attributes
-
Defines the aggregations that are run as part of the search request.
External documentation -
External documentation -
If
true
, the request returns detailed information about score computation as part of a hit. -
Configuration of search extensions defined by Elasticsearch plugins.
-
The starting document offset, which must be non-negative. By default, you cannot page through more than 10,000 hits using the
from
andsize
parameters. To page through more hits, use thesearch_after
parameter. -
Hide highlight attributes Show highlight attributes object
-
A string that contains each boundary character.
-
How far to scan for boundary characters.
-
Values are
chars
,sentence
, orword
. -
Controls which locale is used to search for sentence and word boundaries. This parameter takes a form of a language tag, for example:
"en-US"
,"fr-FR"
,"ja-JP"
. -
Values are
simple
orspan
. -
The size of the highlighted fragment in characters.
-
An Elasticsearch Query DSL (Domain Specific Language) object that defines a query.
External documentation -
If set to a non-negative value, highlighting stops at this defined maximum limit. The rest of the text is not processed, thus not highlighted and no error is returned The
max_analyzed_offset
query setting does not override theindex.highlight.max_analyzed_offset
setting, which prevails when it’s set to lower value than the query setting. -
The amount of text you want to return from the beginning of the field if there are no matching fragments to highlight.
-
The maximum number of fragments to return. If the number of fragments is set to
0
, no fragments are returned. Instead, the entire field contents are highlighted and returned. This can be handy when you need to highlight short texts such as a title or address, but fragmentation is not required. Ifnumber_of_fragments
is0
,fragment_size
is ignored. -
Value is
score
. -
Controls the number of matching phrases in a document that are considered. Prevents the
fvh
highlighter from analyzing too many phrases and consuming too much memory. When usingmatched_fields
,phrase_limit
phrases per matched field are considered. Raising the limit increases query time and consumes more memory. Only supported by thefvh
highlighter. -
Use in conjunction with
pre_tags
to define the HTML tags to use for the highlighted text. By default, highlighted text is wrapped in<em>
and</em>
tags. -
Use in conjunction with
post_tags
to define the HTML tags to use for the highlighted text. By default, highlighted text is wrapped in<em>
and</em>
tags. -
By default, only fields that contains a query match are highlighted. Set to
false
to highlight all fields. -
Value is
styled
. -
Values are
default
orhtml
.
-
Number of hits matching the query to count accurately. If true, the exact number of hits is returned at the cost of some performance. If false, the response does not include the total number of hits matching the query. Defaults to 10,000 hits.
-
Boost the
_score
of documents from specified indices. The boost value is the factor by which scores are multiplied. A boost value greater than1.0
increases the score. A boost value between0
and1.0
decreases the score.External documentation -
An array of wildcard (
*
) field patterns. The request returns doc values for field names matching these patterns in thehits.fields
property of the response.A reference to a field with formatting instructions on how to return the value
External documentation knn
object | array[object] The approximate kNN search to run.
One of: Hide attributes Show attributes
-
Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.
-
The final number of nearest neighbors to return as top hits
-
The number of nearest neighbor candidates to consider per shard
-
Boost value to apply to kNN scores
-
The minimum similarity for a vector to be considered a match
-
Hide inner_hits attributes Show inner_hits attributes object
-
The maximum number of hits to return per
inner_hits
. -
Inner hit starting document offset.
-
Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.
External documentation Hide attributes Show attributes object
-
Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.
-
The final number of nearest neighbors to return as top hits
-
The number of nearest neighbor candidates to consider per shard
-
Boost value to apply to kNN scores
-
The minimum similarity for a vector to be considered a match
-
-
The minimum
_score
for matching documents. Documents with a lower_score
are not included in search results or results collected by aggregations. -
An Elasticsearch Query DSL (Domain Specific Language) object that defines a query.
External documentation -
Set to
true
to return detailed timing information about the execution of individual components in a search request. NOTE: This is a debugging tool and adds significant overhead to search execution. -
An Elasticsearch Query DSL (Domain Specific Language) object that defines a query.
External documentation -
Hide retriever attributes Show retriever attributes object
-
Hide standard attributes Show standard attributes object
-
Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.
-
Retriever name.
-
An Elasticsearch Query DSL (Domain Specific Language) object that defines a query.
-
A field value.
-
Maximum number of documents to collect for each shard.
-
Hide knn attributes Show knn attributes object
-
Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.
-
Retriever name.
-
The name of the vector field to search against.
-
Number of nearest neighbors to return as top hits.
-
Number of nearest neighbor candidates to consider per shard.
-
The minimum similarity required for a document to be considered a match.
-
Hide rrf attributes Show rrf attributes object
-
Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.
-
Retriever name.
-
A list of child retrievers to specify which sets of returned top documents will have the RRF formula applied to them.
-
This value determines how much influence documents in individual result sets per query have over the final ranked result set.
-
This value determines the size of the individual result sets per query.
-
Hide text_similarity_reranker attributes Show text_similarity_reranker attributes object
-
Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.
-
Retriever name.
-
This value determines how many documents we will consider from the nested retriever.
-
Unique identifier of the inference endpoint created using the inference API.
-
The text snippet used as the basis for similarity comparison
-
The document field to be used for text similarity comparisons. This field should contain the text that will be evaluated against the inference_text
-
Hide rule attributes Show rule attributes object
-
Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.
-
Retriever name.
-
The match criteria that will determine if a rule in the provided rulesets should be applied.
-
This value determines the size of the individual result set.
-
Hide pinned attributes Show pinned attributes object
-
-
Retrieve a script evaluation (based on different fields) for each hit.
Hide script_fields attribute Show script_fields attribute object
-
Hide * attributes Show * attributes object
-
-
A field value.
-
The number of hits to return, which must not be negative. By default, you cannot page through more than 10,000 hits using the
from
andsize
parameters. To page through more hits, use thesearch_after
property. -
An array of wildcard (
*
) field patterns. The request returns values for field names matching these patterns in thehits.fields
property of the response.A reference to a field with formatting instructions on how to return the value
-
The maximum number of documents to collect for each shard. If a query reaches this limit, Elasticsearch terminates the query early. Elasticsearch collects documents before sorting.
IMPORTANT: Use with caution. Elasticsearch applies this property to each shard handling the request. When possible, let Elasticsearch perform early termination automatically. Avoid specifying this property for requests that target data streams with backing indices across multiple data tiers.
If set to
0
(default), the query does not terminate early. -
The period of time to wait for a response from each shard. If no response is received before the timeout expires, the request fails and returns an error. Defaults to no timeout.
-
If
true
, calculate and return document scores, even if the scores are not used for sorting. -
If
true
, the request returns the document version as part of a hit. -
If
true
, the request returns sequence number and primary term of the last modification of each hit.External documentation -
Hide runtime_mappings attribute Show runtime_mappings attribute object
-
Hide * attributes Show * attributes object
-
For type
composite
-
For type
lookup
-
A custom format for
date
type runtime fields. -
Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.
-
Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.
-
Values are
boolean
,composite
,date
,double
,geo_point
,geo_shape
,ip
,keyword
,long
, orlookup
.
-
-
-
The stats groups to associate with the search. Each group maintains a statistics aggregation for its associated searches. You can retrieve these stats using the indices stats API.
-
PUT _scripts/my-search-template
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"message": "{{query_string}}"
}
},
"from": "{{from}}",
"size": "{{size}}"
}
}
}
resp = client.put_script(
id="my-search-template",
script={
"lang": "mustache",
"source": {
"query": {
"match": {
"message": "{{query_string}}"
}
},
"from": "{{from}}",
"size": "{{size}}"
}
},
)
const response = await client.putScript({
id: "my-search-template",
script: {
lang: "mustache",
source: {
query: {
match: {
message: "{{query_string}}",
},
},
from: "{{from}}",
size: "{{size}}",
},
},
});
response = client.put_script(
id: "my-search-template",
body: {
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"message": "{{query_string}}"
}
},
"from": "{{from}}",
"size": "{{size}}"
}
}
}
)
$resp = $client->putScript([
"id" => "my-search-template",
"body" => [
"script" => [
"lang" => "mustache",
"source" => [
"query" => [
"match" => [
"message" => "{{query_string}}",
],
],
"from" => "{{from}}",
"size" => "{{size}}",
],
],
],
]);
curl -X PUT -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d '{"script":{"lang":"mustache","source":{"query":{"match":{"message":"{{query_string}}"}},"from":"{{from}}","size":"{{size}}"}}}' "$ELASTICSEARCH_URL/_scripts/my-search-template"
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"message": "{{query_string}}"
}
},
"from": "{{from}}",
"size": "{{size}}"
}
}
}
{
"script": {
"lang": "painless",
"source": "Math.log(_score * 2) + params['my_modifier']"
}
}