Run a search with a search template Generally available; Added in 2.0.0
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
. -
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
. -
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 } }