Run a search with a search template
Generally available
All methods and paths for this operation:
Required authorization
- Index privileges:
read
Path parameters
-
A comma-separated list of data streams, indices, and aliases to search. It supports wildcards (
*
).
Query parameters
-
If
false
, the request returns an error if any wildcard expression, index alias, or_all
value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targetingfoo*,bar*
returns an error if an index starts withfoo
but no index starts withbar
. -
If
true
, network round-trips are minimized for cross-cluster search requests. -
The type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as
open,hidden
.Supported values include:
all
: Match any data stream or index, including hidden ones.open
: Match open, non-hidden indices. Also matches any non-hidden data stream.closed
: Match closed, non-hidden indices. Also matches any non-hidden data stream. Data streams cannot be closed.hidden
: Match hidden data streams and hidden indices. Must be combined withopen
,closed
, orboth
.none
: Wildcard expressions are not accepted.
Values are
all
,open
,closed
,hidden
, ornone
. -
If
true
, the response includes additional details about score computation as part of a hit. -
If
true
, specified concrete, expanded, or aliased indices are not included in the response when throttled. -
The node or shard the operation should be performed on. It is random by default.
-
If
true
, the query execution is profiled. -
A custom value used to route operations to a specific shard.
-
Specifies how long a consistent view of the index should be maintained for scrolled search.
Values are
-1
or0
. -
The type of the search operation.
Supported values include:
query_then_fetch
: Documents are scored using local term and document frequencies for the shard. This is usually faster but less accurate.dfs_query_then_fetch
: Documents are scored using global term and document frequencies across all shards. This is usually slower but more accurate.
Values are
query_then_fetch
ordfs_query_then_fetch
. -
If
true
,hits.total
is rendered as an integer in the response. Iffalse
, it is rendered as an object. -
If
true
, the response prefixes aggregation and suggester names with their respective types.
Body
Required
-
If
true
, returns detailed information about score calculation as part of each hit. If you specify both this and theexplain
query parameter, the API uses only the query parameter.Default value is
false
. -
The ID of the search template to use. If no
source
is specified, this parameter is required. -
Key-value pairs used to replace Mustache variables in the template. The key is the variable name. The value is the variable value.
-
If
true
, the query execution is profiled.Default value is
false
. source
string | object An inline search template. Supports the same parameters as the search API's request body. It also supports Mustache variables. If no
id
is specified, this parameter is required.
GET my-index/_search/template
{
"id": "my-search-template",
"params": {
"query_string": "hello world",
"from": 0,
"size": 10
}
}
resp = client.search_template(
index="my-index",
id="my-search-template",
params={
"query_string": "hello world",
"from": 0,
"size": 10
},
)
const response = await client.searchTemplate({
index: "my-index",
id: "my-search-template",
params: {
query_string: "hello world",
from: 0,
size: 10,
},
});
response = client.search_template(
index: "my-index",
body: {
"id": "my-search-template",
"params": {
"query_string": "hello world",
"from": 0,
"size": 10
}
}
)
$resp = $client->searchTemplate([
"index" => "my-index",
"body" => [
"id" => "my-search-template",
"params" => [
"query_string" => "hello world",
"from" => 0,
"size" => 10,
],
],
]);
curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d '{"id":"my-search-template","params":{"query_string":"hello world","from":0,"size":10}}' "$ELASTICSEARCH_URL/my-index/_search/template"
client.searchTemplate(s -> s
.id("my-search-template")
.index("my-index")
.params(Map.of("size", JsonData.fromJson("10"),"from", JsonData.fromJson("0"),"query_string", JsonData.fromJson("\"hello world\"")))
);
{
"id": "my-search-template",
"params": {
"query_string": "hello world",
"from": 0,
"size": 10
}
}