Run multiple templated searches
- POST also GET /{index}/_msearch/template
- POST also GET /_msearch/template
Run multiple templated searches with a single request.
If you are providing a text file or text input to curl, use the --data-binary flag instead of -d to preserve newlines.
For example:
$ cat requests
{ "index": "my-index" }
{ "id": "my-search-template", "params": { "query_string": "hello world", "from": 0, "size": 10 }}
{ "index": "my-other-index" }
{ "id": "my-other-search-template", "params": { "query_type": "match_all" }}
$ curl -H "Content-Type: application/x-ndjson" -XGET localhost:9200/_msearch/template --data-binary "@requests"; echo
- Index privileges:
read
Path Parameters
-
indexIndexName | IndexNameoptional -
A comma-separated list of data streams, indices, and aliases to search. It supports wildcards (
*). To search all data streams and indices, omit this parameter or use*.Leave it out to use
/_msearch/template.
Query Parameters
-
ccs_minimize_roundtripsboolean · default: true If
true, network round-trips are minimized for cross-cluster search requests.-
max_concurrent_searchesnumber The maximum number of concurrent searches the API can run.
-
search_typeSearchType 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:
query_then_fetchdfs_query_then_fetch -
rest_total_hits_as_intboolean · default: false If
true, the response returnshits.totalas an integer. Iffalse, it returnshits.totalas an object.-
typed_keysboolean · default: false If
true, the response prefixes aggregation and suggester names with their respective types.
Request
Contains parameters used to limit or change the subsequent search body request.
-
allow_no_indicesboolean -
expand_wildcardsstring ExpandWildcards -
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:
allopenclosedhiddennone -
indexstring Indices -
preferencestring -
request_cacheboolean -
routingstring Routing -
search_typeSearchType -
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:
query_then_fetchdfs_query_then_fetch -
ccs_minimize_roundtripsboolean -
allow_partial_search_resultsboolean -
ignore_throttledboolean
-
explainboolean · default: false -
If
true, returns detailed information about score calculation as part of each hit. -
idstring Id -
The ID of the search template to use. If no
sourceis specified, this parameter is required. -
paramsmap string to object -
Key-value pairs used to replace Mustache variables in the template. The key is the variable name. The value is the variable value.
-
profileboolean · default: false -
If
true, the query execution is profiled. -
sourcestring -
An inline search template. Supports the same parameters as the search API's request body. It also supports Mustache variables. If no
idis specified, this parameter is required.
Response
-
tooknumberrequired -
responsesResponseItemrequired -
tooknumberrequired -
The number of milliseconds it took Elasticsearch to run the request. This value is calculated by measuring the time elapsed between receipt of a request on the coordinating node and the time at which the coordinating node is ready to send the response. It includes:
- Communication time between the coordinating node and data nodes
- Time the request spends in the search thread pool, queued for execution
- Actual run time
It does not include:
- Time needed to send the request to Elasticsearch
- Time needed to serialize the JSON response
- Time needed to send the response to a client
-
timed_outbooleanrequired -
If
true, the request timed out before completion; returned results may be partial or empty. -
_shardsShardStatisticsrequired -
A count of shards used for the request.
-
failednumber uintrequired -
The number of shards the operation or search attempted to run on but failed.
-
successfulnumber uintrequired -
The number of shards the operation or search succeeded on.
-
totalnumber uintrequired -
The number of shards the operation or search will run on overall.
-
failuresShardFailure -
indexstring IndexName -
nodestring -
reasonErrorCauserequired -
typestringrequired -
The type of error
-
reasonstringnullable -
A human-readable explanation of the error, in English.
-
stack_tracestring -
The server stack trace. Present only if the
error_trace=trueparameter was sent with the request. -
caused_byErrorCause -
root_causeErrorCause -
suppressedErrorCause -
shardnumber -
statusstring -
primaryboolean -
skippednumber uint -
hitsHitsMetadatarequired -
The returned documents and metadata.
-
totaloneOf -
Total hit count information, present only if
track_total_hitswasn'tfalsein the search request. -
hitsHitrequired -
_indexstring IndexNamerequired -
_idstring Id -
_scorenumber | stringnullable -
_explanationExplanation -
descriptionstringrequired -
detailsExplanationDetailrequired -
descriptionstringrequired -
detailsExplanationDetail -
valuenumberrequired -
valuenumberrequired -
fieldsmap string to object -
highlightmap string to string -
inner_hitsmap string to InnerHitsResult -
<string>InnerHitsResult -
hitsHitsMetadatarequired -
matched_queriesoneOf -
_ignoredstring -
ignored_field_valuesmap string to FieldValue -
_shardstring -
_nodestring -
_routingstring -
_sourceobject -
_ranknumber -
_seq_nonumber SequenceNumber -
_primary_termnumber -
_versionnumber VersionNumber -
sortSortResults -
max_scorenumber | stringnullable -
aggregationsmap string to Aggregate -
_clustersClusterStatistics -
fieldsmap string to object -
max_scorenumber -
num_reduce_phasesnumber -
profileProfile -
shardsShardProfilerequired -
aggregationsAggregationProfilerequired -
breakdownAggregationBreakdownrequired -
build_aggregationnumberrequired -
build_aggregation_countnumberrequired -
build_leaf_collectornumberrequired -
build_leaf_collector_countnumberrequired -
collectnumberrequired -
collect_countnumberrequired -
initializenumberrequired -
initialize_countnumberrequired -
post_collectionnumber -
post_collection_countnumber -
reducenumberrequired -
reduce_countnumberrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
typestringrequired -
debugAggregationProfileDebug -
collection_strategystring -
total_bucketsnumber -
built_bucketsnumber -
result_strategystring -
has_filterboolean -
delegatestring -
delegate_debugAggregationProfileDebug -
chars_fetchednumber -
extract_countnumber -
extract_nsnumber -
values_fetchednumber -
collect_analyzed_nsnumber -
collect_analyzed_countnumber -
surviving_bucketsnumber -
ordinals_collectors_usednumber -
numeric_collectors_usednumber -
empty_collectors_usednumber -
deferred_aggregatorsstring -
segments_with_deleted_docsnumber -
filtersAggregationProfileDelegateDebugFilter -
results_from_metadatanumber -
querystring -
specialized_forstring -
segments_countednumber -
segments_collectednumber -
map_reducerstring -
brute_force_usednumber -
dynamic_pruning_attemptednumber -
dynamic_pruning_usednumber -
skipped_due_to_no_datanumber -
childrenAggregationProfile -
clusterstringrequired -
dfsDfsProfile -
statisticsDfsStatisticsProfile -
typestringrequired -
descriptionstringrequired -
timestring Duration -
time_in_nanosDurationValueUnitNanosrequired -
breakdownDfsStatisticsBreakdownrequired -
collection_statisticsnumberrequired -
collection_statistics_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
rewritenumberrequired -
rewrite_countnumberrequired -
term_statisticsnumberrequired -
term_statistics_countnumberrequired -
debugmap string to object -
childrenDfsStatisticsProfile -
knnDfsKnnProfile -
vector_operations_countnumber -
queryKnnQueryProfileResultrequired -
typestringrequired -
descriptionstringrequired -
timestring Duration -
time_in_nanosDurationValueUnitNanosrequired -
breakdownKnnQueryProfileBreakdownrequired -
advancenumberrequired -
advance_countnumberrequired -
build_scorernumberrequired -
build_scorer_countnumberrequired -
compute_max_scorenumberrequired -
compute_max_score_countnumberrequired -
count_weightnumberrequired -
count_weight_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
matchnumberrequired -
match_countnumberrequired -
next_docnumberrequired -
next_doc_countnumberrequired -
scorenumberrequired -
score_countnumberrequired -
set_min_competitive_scorenumberrequired -
set_min_competitive_score_countnumberrequired -
shallow_advancenumberrequired -
shallow_advance_countnumberrequired -
debugmap string to object -
childrenKnnQueryProfileResult -
rewrite_timenumberrequired -
fetchFetchProfile -
typestringrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
breakdownFetchProfileBreakdownrequired -
load_sourcenumber -
load_source_countnumber -
load_stored_fieldsnumber -
load_stored_fields_countnumber -
next_readernumber -
next_reader_countnumber -
process_countnumber -
processnumber -
debugFetchProfileDebug -
stored_fieldsstring -
fast_pathnumber -
childrenFetchProfile -
idstringrequired -
indexstring IndexNamerequired -
node_idstringrequired -
searchesSearchProfilerequired -
collectorCollectorrequired -
namestringrequired -
reasonstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
childrenCollector -
queryQueryProfilerequired -
breakdownQueryBreakdownrequired -
advancenumberrequired -
advance_countnumberrequired -
build_scorernumberrequired -
build_scorer_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
matchnumberrequired -
match_countnumberrequired -
shallow_advancenumberrequired -
shallow_advance_countnumberrequired -
next_docnumberrequired -
next_doc_countnumberrequired -
scorenumberrequired -
score_countnumberrequired -
compute_max_scorenumberrequired -
compute_max_score_countnumberrequired -
count_weightnumberrequired -
count_weight_countnumberrequired -
set_min_competitive_scorenumberrequired -
set_min_competitive_score_countnumberrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
typestringrequired -
childrenQueryProfile -
rewrite_timenumberrequired -
shard_idnumberrequired -
pit_idstring Id -
_scroll_idstring ScrollId -
The identifier for the search and its search context. You can use this scroll ID with the scroll API to retrieve the next batch of search results for the request. This property is returned only if the
scrollquery parameter is specified in the request. - Reference
-
suggestmap string to Suggest -
terminated_earlyboolean -
statusnumber -
errorErrorCauserequired -
typestringrequired -
The type of error
-
reasonstringnullable -
A human-readable explanation of the error, in English.
-
stack_tracestring -
The server stack trace. Present only if the
error_trace=trueparameter was sent with the request. -
caused_byErrorCause -
root_causeErrorCause -
suppressedErrorCause -
statusnumberrequired
The response returned by Elasticsearch when request execution did not succeed.