Run a search

  • POST also GET /{index}/_search
  • POST also GET /_search
Auth

Get search hits that match the query defined in the request. You can provide search queries using the q query string parameter or the request body. If both are specified, only the query parameter is used.

If the Elasticsearch security features are enabled, you must have the read index privilege for the target data stream, index, or alias. For cross-cluster search, refer to the documentation about configuring CCS privileges. To search a point in time (PIT) for an alias, you must have the read index privilege for the alias's data streams or indices.

Search slicing

When paging through a large number of documents, it can be helpful to split the search into multiple slices to consume them independently with the slice and pit properties. By default the splitting is done first on the shards, then locally on each shard.

For instance if the number of shards is equal to 2 and you request 4 slices, the slices 0 and 2 are assigned to the first shard and the slices 1 and 3 are assigned to the second shard.

Important

The same point-in-time ID should be used for all slices. If different PIT IDs are used, slices can overlap and miss documents. This situation can occur because, by default, the splitting criterion is based on Lucene document IDs, which are not stable across changes to the index.

About adding remote clusters

Required authorization

Index privileges read

Path parameters

index union string | string[] optional

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 * or _all.

Leave it out to use /_search.

Query parameters

allow_no_indices boolean · default: true

A setting that does two separate checks on the index expression. If false, the request returns an error (1) if any wildcard expression (including _all and *) resolves to zero matching indices or (2) if the complete set of resolved indices, aliases or data streams is empty after all expressions are evaluated. If true, index expressions that resolve to no indices are allowed and the request returns an empty result.

allow_partial_search_results boolean · default: true

If true and there are shard request timeouts or shard failures, the request returns partial results. If false, it returns an error with no partial results.

To override the default behavior, you can set the search.default_allow_partial_results cluster setting to false.

analyzer string

The analyzer to use for the query string. This parameter can be used only when the q query string parameter is specified.

analyze_wildcard boolean · default: false

If true, wildcard and prefix queries are analyzed. This parameter can be used only when the q query string parameter is specified.

batched_reduce_size number · default: 512

The number of shard results that should be reduced at once on the coordinating node. If the potential number of shards in the request can be large, this value should be used as a protection mechanism to reduce the memory overhead per search request.

ccs_minimize_roundtrips boolean · default: true

If true, network round-trips between the coordinating node and the remote clusters are minimized when running cross-cluster search (CCS) requests.

default_operator enum · default: or

The default operator for the query string query: and or or. This parameter can be used only when the q query string parameter is specified.

Values: and AND or OR
df string

The field to use as a default when no field prefix is given in the query string. This parameter can be used only when the q query string parameter is specified.

docvalue_fields union string | string[]

A comma-separated list of fields to return as the docvalue representation of a field for each hit.

expand_wildcards union oneOf · default: open

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. It 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 with open, closed, or both.
  • none: Wildcard expressions are not accepted.
Values: all open closed hidden none
explain boolean · default: false

If true, the request returns detailed information about score computation as part of a hit.

ignore_throttled boolean · default: true deprecated

If true, concrete, expanded or aliased indices will be ignored when frozen.

ignore_unavailable boolean · default: false

If false, the request returns an error if it targets a concrete (non-wildcarded) index, alias, or data stream that is missing, closed, or otherwise unavailable. If true, unavailable concrete targets are silently ignored.

include_named_queries_score boolean · default: false

If true, the response includes the score contribution from any named queries.

This functionality reruns each named query on every hit in a search response. Typically, this adds a small overhead to a request. However, using computationally expensive named queries on a large number of hits may add significant overhead.

lenient boolean · default: false

If true, format-based query failures (such as providing text to a numeric field) in the query string will be ignored. This parameter can be used only when the q query string parameter is specified.

max_concurrent_shard_requests number · default: 5

The number of concurrent shard requests per node that the search runs concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests.

preference string

The nodes and shards used for the search. By default, Elasticsearch selects from eligible nodes and shards using adaptive replica selection, accounting for allocation awareness. Valid values are:

  • _only_local to run the search only on shards on the local node.
  • _local to, if possible, run the search on shards on the local node, or if not, select shards using the default method.
  • _only_nodes:<node-id>,<node-id> to run the search on only the specified nodes IDs. If suitable shards exist on more than one selected node, use shards on those nodes using the default method. If none of the specified nodes are available, select shards from any available node using the default method.
  • _prefer_nodes:<node-id>,<node-id> to if possible, run the search on the specified nodes IDs. If not, select shards using the default method.
  • _shards:<shard>,<shard> to run the search only on the specified shards. You can combine this value with other preference values. However, the _shards value must come first. For example: _shards:2,3|_local.
  • <custom-string> (any string that does not start with _) to route searches with the same <custom-string> to the same shards in the same order.
pre_filter_shard_size number

A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method (if date filters are mandatory to match but the shard bounds and the query are disjoint). When unspecified, the pre-filter phase is executed if any of these conditions is met:

  • The request targets more than 128 shards.
  • The request targets one or more read-only index.
  • The primary sort of the query targets an indexed field.
request_cache boolean

If true, the caching of search results is enabled for requests where size is 0. It defaults to index level settings.

routing union string | string[]

A custom value that is used to route operations to a specific shard. Not allowed when index.slice.enabled is true for the target index; use _slice instead.

scroll string

The period to retain the search context for scrolling. By default, this value cannot exceed 1d (24 hours). You can change this limit by using the search.max_keep_alive cluster-level setting.

search_type enum

Indicates how distributed term frequencies are calculated for relevance scoring.

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_fetch dfs_query_then_fetch
stats union string[] | string

Specific tag of the request for logging and statistical purposes.

stored_fields union string | string[]

A comma-separated list of stored fields to return as part of a hit. If no fields are specified, no stored fields are included in the response. If this field is specified, the _source parameter defaults to false. You can pass _source: true to return both source fields and stored fields in the search response.

suggest_field string

The field to use for suggestions.

suggest_mode enum · default: missing

The suggest mode. This parameter can be used only when the suggest_field and suggest_text query string parameters are specified.

Supported values include:

  • missing: Only generate suggestions for terms that are not in the shard.
  • popular: Only suggest terms that occur in more docs on the shard than the original term.
  • always: Suggest any matching suggestions based on terms in the suggest text.
Values: missing popular always
suggest_size number

The number of suggestions to return. This parameter can be used only when the suggest_field and suggest_text query string parameters are specified.

suggest_text string

The source text for which the suggestions should be returned. This parameter can be used only when the suggest_field and suggest_text query string parameters are specified.

terminate_after number · default: 0

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 parameter to each shard handling the request. When possible, let Elasticsearch perform early termination automatically. Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. If set to 0 (default), the query does not terminate early.

timeout string

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. It defaults to no timeout.

track_total_hits boolean | number · default: 10000

The 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.

track_scores boolean · default: false

If true, the request calculates and returns document scores, even if the scores are not used for sorting.

typed_keys boolean · default: false

If true, aggregation and suggester names are be prefixed by their respective types in the response.

rest_total_hits_as_int boolean · default: false

Indicates whether hits.total should be rendered as an integer or an object in the rest search response.

version boolean · default: false

If true, the request returns the document version as part of a hit.

_source union oneOf · default: true

The source fields that are returned for matching documents. These fields are returned in the hits._source property of the search response. Valid values are:

  • true to return the entire document source.
  • false to not return the document source.
  • <string> to return the source fields that are specified as a comma-separated list that supports wildcard (*) patterns.
One of: boolean or string
_source_excludes union string | string[]

A comma-separated list of source fields to exclude from the response. You can also use this parameter to exclude fields from the subset specified in _source_includes query parameter. If the _source parameter is false, this parameter is ignored.

_source_exclude_vectors boolean · default: false

Whether vectors should be excluded from _source

_source_includes union string | string[]

A comma-separated list of source fields to include in the response. If this parameter is specified, only these source fields are returned. You can exclude fields from this subset using the _source_excludes query parameter. If the _source parameter is false, this parameter is ignored.

seq_no_primary_term boolean

If true, the request returns the sequence number and primary term of the last modification of each hit.

q string

A query in the Lucene query string syntax. Query parameter searches do not support the full Elasticsearch Query DSL but are handy for testing.

Important

This parameter overrides the query parameter in the request body. If both parameters are specified, documents matching the query request body parameter are not returned.

size number · default: 10

The number of hits to return. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

from number · default: 0

The starting document offset, which must be non-negative. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

sort union string | string[]

A comma-separated list of <field>:<direction> pairs.

Request body

aggregations map string to {} Aggregation

Defines the aggregations that are run as part of the search request.

collapse object

Collapses search results the values of the specified field.

field string required

The field to collapse the result set on

inner_hits union oneOf

The number of inner hits and their sort order

object or object[]
name string

The name for the particular inner hit definition in the response. Useful when a search request contains multiple inner hits.

size number · default: 3

The maximum number of hits to return per inner_hits.

from number · default: 0

Inner hit starting document offset.

collapse object
Same fields as collapse
docvalue_fields object[]
field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
explain boolean
highlight object
type union anyOf

Supported values include:

  • plain: The plain highlighter uses the standard Lucene highlighter
  • fvh: The fvh highlighter uses the Lucene Fast Vector highlighter.
  • unified: The unified highlighter uses the Lucene Unified Highlighter.
Values: plain fvh unified
boundary_chars string · default: .,!? \t\n

A string that contains each boundary character.

boundary_max_scan number · default: 20

How far to scan for boundary characters.

boundary_scanner enum

Specifies how to break the highlighted fragments: chars, sentence, or word. Only valid for the unified and fvh highlighters. Defaults to sentence for the unified highlighter. Defaults to chars for the fvh highlighter.

Supported values include:

  • chars: Use the characters specified by boundary_chars as highlighting boundaries. The boundary_max_scan setting controls how far to scan for boundary characters. Only valid for the fvh highlighter.
  • sentence: Break highlighted fragments at the next sentence boundary, as determined by Java’s BreakIterator. You can specify the locale to use with boundary_scanner_locale. When used with the unified highlighter, the sentence scanner splits sentences bigger than fragment_size at the first word boundary next to fragment_size. You can set fragment_size to 0 to never split any sentence.
  • word: Break highlighted fragments at the next word boundary, as determined by Java’s BreakIterator. You can specify the locale to use with boundary_scanner_locale.
Values: chars sentence word
boundary_scanner_locale string · default: Locale.ROOT

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".

force_source boolean deprecated
fragmenter enum · default: span

Specifies how text should be broken up in highlight snippets: simple or span. Only valid for the plain highlighter.

Values: simple span
fragment_size number · default: 100

The size of the highlighted fragment in characters.

highlight_filter boolean
highlight_query {} Query

Highlight matches for a query other than the search query. This is especially useful if you use a rescore query because those are not taken into account by highlighting by default.

max_fragment_length number
max_analyzed_offset number

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 the index.highlight.max_analyzed_offset setting, which prevails when it’s set to lower value than the query setting.

no_match_size number · default: 0

The amount of text you want to return from the beginning of the field if there are no matching fragments to highlight.

number_of_fragments number · default: 5

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. If number_of_fragments is 0, fragment_size is ignored.

options map string to object
order enum · default: none

Sorts highlighted fragments by score when set to score. By default, fragments will be output in the order they appear in the field (order: none). Setting this option to score will output the most relevant fragments first. Each highlighter applies its own logic to compute relevancy scores.

Values: score
phrase_limit number · default: 256

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 using matched_fields, phrase_limit phrases per matched field are considered. Raising the limit increases query time and consumes more memory. Only supported by the fvh highlighter.

post_tags string[]

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.

pre_tags string[]

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.

require_field_match boolean · default: true

By default, only fields that contains a query match are highlighted. Set to false to highlight all fields.

tags_schema enum

Set to styled to use the built-in tag schema.

Values: styled
encoder enum
Values: default html
fields union oneOf required
map string to object or [] map string to object
ignore_unmapped boolean
script_fields map string to object
<string> object
script string required
ignore_failure boolean
seq_no_primary_term boolean
field string[]
fields object[]
field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
sort union oneOf

How the inner hits should be sorted per inner_hits. By default, inner hits are sorted by score.

A value or an array; each item is one of:

Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.

_source union oneOf
One of:
stored_fields union oneOf
One of: string[] or string
track_scores boolean · default: false
version boolean
max_concurrent_group_searches number

The number of concurrent requests allowed to retrieve the inner_hits per group

explain boolean · default: false

If true, the request returns detailed information about score computation as part of a hit.

ext map string to object

Configuration of search extensions defined by Elasticsearch plugins.

from number · default: 0

The starting document offset, which must be non-negative. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

highlight object

Specifies the highlighter to use for retrieving highlighted snippets from one or more fields in your search results.

Same fields as highlight in inner_hits
track_total_hits boolean | number · default: 10000

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.

indices_boost string to number[]

Boost the _score of documents from specified indices. The boost value is the factor by which scores are multiplied. A boost value greater than 1.0 increases the score. A boost value between 0 and 1.0 decreases the score.

docvalue_fields object[]

An array of wildcard (*) field patterns. The request returns doc values for field names matching these patterns in the hits.fields property of the response.

field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
knn union oneOf

The approximate kNN search to run.

object or object[]
field string required

The name of the vector field to search against

query_vector number[]

The query vector

query_vector_builder object

The query vector builder. You must provide a query_vector_builder or query_vector, but not both.

embedding object
inference_id string
input union oneOf required
One of:
timeout string
text_embedding object
model_id string

Model ID is required for all dense_vector fields but may be inferred for semantic_text fields

model_text string required

The text to be converted into a vector by the specified model

lookup object

Lookup a vector from an existing document. Must reference a dense_vector field and a single value.

id string required

The ID of the document to fetch the vector from

index string required

The name of the index to fetch the document from

path string required

The name of the field containing the vector

routing string

The routing value to use when fetching the document

k number

The final number of nearest neighbors to return as top hits

num_candidates number

The number of nearest neighbor candidates to consider per shard

visit_percentage number

The percentage of vectors to explore per shard while doing knn search with bbq_disk

boost number

Boost value to apply to kNN scores

filter union oneOf

Filters for the kNN search query

One of: Query[] or Query
similarity number

The minimum similarity for a vector to be considered a match

inner_hits object

If defined, each search hit will contain inner hits.

name string

The name for the particular inner hit definition in the response. Useful when a search request contains multiple inner hits.

size number · default: 3

The maximum number of hits to return per inner_hits.

from number · default: 0

Inner hit starting document offset.

collapse object
field string required

The field to collapse the result set on

inner_hits union oneOf

The number of inner hits and their sort order

object or object[]
max_concurrent_group_searches number

The number of concurrent requests allowed to retrieve the inner_hits per group

docvalue_fields object[]
field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
explain boolean
highlight object
Same fields as highlight in inner_hits
ignore_unmapped boolean
script_fields map string to object
<string> object
script string required
ignore_failure boolean
seq_no_primary_term boolean
field string[]
fields object[]
field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
sort union oneOf

How the inner hits should be sorted per inner_hits. By default, inner hits are sorted by score.

Same options as sort in inner_hits
_source union oneOf
One of:
stored_fields union oneOf
One of: string[] or string
track_scores boolean · default: false
version boolean
rescore_vector object

Apply oversampling and rescoring to quantized vectors

oversample number required

Applies the specified oversample factor to k on the approximate kNN search

_name string
min_score number

The minimum _score for matching documents. Documents with a lower _score are not included in search results and results collected by aggregations.

post_filter {} Query

Use the post_filter parameter to filter search results. The search hits are filtered after the aggregations are calculated. A post filter has no impact on the aggregation results.

profile boolean · default: false

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.

query {} Query

The search definition using the Query DSL.

rescore union oneOf

Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the query and post_filter phases.

object or object[]
window_size number
query object
rescore_query {} Query required

The query to use for rescoring. This query is only run on the Top-K results returned by the query and post_filter phases.

query_weight number · default: 1

Relative importance of the original query versus the rescore query.

rescore_query_weight number · default: 1

Relative importance of the rescore query versus the original query.

score_mode enum · default: total

Determines how scores are combined.

Supported values include:

  • avg: Average the original score and the rescore query score.
  • max: Take the max of original score and the rescore query score.
  • min: Take the min of the original score and the rescore query score.
  • multiply: Multiply the original score by the rescore query score. Useful for function query rescores.
  • total: Add the original score and the rescore query score.
Values: avg max min multiply total
learning_to_rank object
model_id string required

The unique identifier of the trained model uploaded to Elasticsearch

params map string to object

Named parameters to be passed to the query templates used for feature

script object
script string required
retriever object

A retriever is a specification to describe top documents returned from a search. A retriever replaces other elements of the search API that also return top documents such as query and knn.

standard object

A retriever that replaces the functionality of a traditional query.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

query {} Query

Defines a query to retrieve a set of top documents.

search_after union[]

Defines a search after object parameter used for pagination.

terminate_after number

Maximum number of documents to collect for each shard.

sort union oneOf

A sort object that that specifies the order of matching documents.

Same options as sort in inner_hits
collapse object

Collapses the top documents by a specified key into a single top document per key.

Same fields as collapse
knn object

A retriever that replaces the functionality of a knn search.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

field string required

The name of the vector field to search against.

query_vector number[]

Query vector. Must have the same number of dimensions as the vector field you are searching against. You must provide a query_vector_builder or query_vector, but not both.

query_vector_builder object

Defines a model to build a query vector.

Same fields as query_vector_builder in knn
k number required

Number of nearest neighbors to return as top hits.

num_candidates number

Number of nearest neighbor candidates to consider per shard.

visit_percentage number

The percentage of vectors to explore per shard while doing knn search with bbq_disk

similarity number

The minimum similarity required for a document to be considered a match.

rescore_vector object

Apply oversampling and rescoring to quantized vectors

oversample number required

Applies the specified oversample factor to k on the approximate kNN search

rrf object

A retriever that produces top documents from reciprocal rank fusion (RRF).

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

retrievers union oneOf[] required

A list of child retrievers to specify which sets of returned top documents will have the RRF formula applied to them. Each retriever can optionally include a weight parameter.

One of:
rank_constant number

This value determines how much influence documents in individual result sets per query have over the final ranked result set.

rank_window_size number

This value determines the size of the individual result sets per query.

query string
fields string[]
text_similarity_reranker object

A retriever that reranks the top documents based on a reranking model using the InferenceAPI

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

retriever object required

The nested retriever which will produce the first-level results, that will later be used for reranking.

Same fields as retriever
rank_window_size number

This value determines how many documents we will consider from the nested retriever.

inference_id string

Unique identifier of the inference endpoint created using the inference API.

inference_text string required

The text snippet used as the basis for similarity comparison.

field string required

The document field to be used for text similarity comparisons. This field should contain the text that will be evaluated against the inference_text.

chunk_rescorer object

Whether to rescore on only the best matching chunks.

size number

The number of chunks per document to evaluate for reranking.

chunking_settings object

Chunking settings to apply

max_chunk_size number · default: 250 required

The maximum size of a chunk in words. This value cannot be lower than 20 (for sentence strategy) or 10 (for word strategy). This value should not exceed the window size for the associated model.

overlap number · default: 100

The number of overlapping words for chunks. It is applicable only to a word chunking strategy. This value cannot be higher than half the max_chunk_size value.

sentence_overlap number · default: 1

The number of overlapping sentences for chunks. It is applicable only for a sentence chunking strategy. It can be either 1 or 0.

separator_group string

Only applicable to the recursive strategy and required when using it.

Sets a predefined list of separators in the saved chunking settings based on the selected text type. Values can be markdown or plaintext.

Using this parameter is an alternative to manually specifying a custom separators list.

separators string[]

Only applicable to the recursive strategy and required when using it.

A list of strings used as possible split points when chunking text.

Each string can be a plain string or a regular expression (regex) pattern. The system tries each separator in order to split the text, starting from the first item in the list.

After splitting, it attempts to recombine smaller pieces into larger chunks that stay within the max_chunk_size limit, to reduce the total number of chunks generated.

strategy string · default: sentence

The chunking strategy: sentence, word, none or recursive.

  • If strategy is set to recursive, you must also specify:
  • max_chunk_size
  • either separators orseparator_group

Learn more about different chunking strategies in the linked documentation.

rule object

A retriever that replaces the functionality of a rule query.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

ruleset_ids union string | string[] required

The ruleset IDs containing the rules this retriever is evaluating against.

match_criteria object required

The match criteria that will determine if a rule in the provided rulesets should be applied.

retriever object required

The retriever whose results rules should be applied to.

Same fields as retriever
rank_window_size number

This value determines the size of the individual result set.

rescorer object

A retriever that re-scores only the results produced by its child retriever.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

retriever object required

Inner retriever.

Same fields as retriever
rescore union oneOf required
object or object[]
Same options as rescore
linear object

A retriever that supports the combination of different retrievers through a weighted linear combination.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

retrievers object[]

Inner retrievers.

retriever object required

The nested retriever configuration.

Same fields as retriever
weight number · default: 1

Weight multiplier for this retriever's contribution to the linear combination. Must be non-negative.

normalizer enum · default: none

Score normalizer to apply to this retriever's results before weighting. Falls back to the top-level normalizer on the linear retriever if unset, then to none (identity) if neither is set.

Values: none minmax l2_norm
rank_window_size number
query string
fields string[]
normalizer enum
Values: none minmax l2_norm
pinned object

A pinned retriever applies pinned documents to the underlying retriever. This retriever will rewrite to a PinnedQueryBuilder.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

retriever object required

Inner retriever.

Same fields as retriever
ids string[]
docs object[]
index string
id string required
rank_window_size number
diversify object

A retriever that diversifies the results from its child retriever.

filter union oneOf

Query to filter the documents that can match.

One of: Query[] or Query
min_score number

Minimum _score for matching documents. Documents with a lower _score are not included in the top documents.

_name string

Retriever name.

type enum required

The diversification strategy to apply.

Values: mmr
field string required

The document field on which to diversify results on.

retriever object required

The nested retriever whose results will be diversified.

Same fields as retriever
size number

The number of top documents to return after diversification.

rank_window_size number

The number of top documents from the nested retriever to consider for diversification.

query_vector number[]

The query vector used for diversification.

query_vector_builder object

a dense vector query vector builder to use instead of a static query_vector

Same fields as query_vector_builder in knn
lambda number

Controls the trade-off between relevance and diversity for MMR. A value of 0.0 focuses solely on diversity, while a value of 1.0 focuses solely on relevance. Required for MMR

script_fields map string to object

Retrieve a script evaluation (based on different fields) for each hit.

<string> object
script string required
ignore_failure boolean
search_after union[]

Used to retrieve the next page of hits using a set of sort values from the previous page.

size number · default: 10

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 and size parameters. To page through more hits, use the search_after property.

slice object

Split a scrolled search into multiple slices that can be consumed independently.

field string
id string required
max number required
sort union oneOf

A comma-separated list of

Same options as sort in inner_hits
_source union oneOf

The source fields that are returned for matching documents. These fields are returned in the hits._source property of the search response. If the stored_fields property is specified, the _source property defaults to false. Otherwise, it defaults to true.

One of:
fields object[]

An array of wildcard (*) field patterns. The request returns values for field names matching these patterns in the hits.fields property of the response.

field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
suggest object

Defines a suggester that provides similar looking terms based on a provided text.

text string

Global suggest text, to avoid repetition when the same text is used in several suggesters

terminate_after number · default: 0

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.

timeout string

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.

track_scores boolean · default: false

If true, calculate and return document scores, even if the scores are not used for sorting.

version boolean · default: false

If true, the request returns the document version as part of a hit.

seq_no_primary_term boolean

If true, the request returns sequence number and primary term of the last modification of each hit.

stored_fields union oneOf

A comma-separated list of stored fields to return as part of a hit. If no fields are specified, no stored fields are included in the response. If this field is specified, the _source property defaults to false. You can pass _source: true to return both source fields and stored fields in the search response.

One of: string[] or string
pit object

Limit the search to a point in time (PIT). If you provide a PIT, you cannot specify an <index> in the request path.

id string required
keep_alive string
runtime_mappings object

One or more runtime fields in the search request. These fields take precedence over mapped fields with the same name.

stats string[]

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.

Response

application/json
took number required

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_out boolean required

If true, the request timed out before completion; returned results may be partial or empty.

_shards object required

A count of shards used for the request.

failed number required

The number of shards the operation or search attempted to run on but failed.

successful number required

The number of shards the operation or search succeeded on.

total number required

The number of shards the operation or search will run on overall.

failures object[]
index string
node string
reason object required
type string required

The type of error

reason union string nullable

A human-readable explanation of the error, in English.

One of: string
stack_trace string

The server stack trace. Present only if the error_trace=true parameter was sent with the request.

caused_by object
Same fields as reason in failures
root_cause object[]
Same fields as reason in failures
suppressed object[]
Same fields as reason in failures
shard number
status string
primary boolean
skipped number
hits object required

The returned documents and metadata.

total union oneOf

Total hit count information, present only if track_total_hits wasn't false in the search request.

One of:
relation enum required

Supported values include:

  • eq: Accurate
  • gte: Lower bound, including returned events or sequences
Values: eq gte
value number required
hits object[] required
_index string required
_id string
_score union number | string nullable
_explanation object
description string required
details object[] required
description string required
details object[]
Same fields as details in _explanation
value number required
value number required
fields map string to object
highlight map string to string
inner_hits map string to object
<string> object
hits object required
Same fields as hits
matched_queries union oneOf
One of: string[] or string to number
_nested object
field string required
offset number required
_nested object
Same fields as _nested in hits
_ignored string[]
ignored_field_values map string to object
_shard string
_node string
_routing string
_source object
_rank number
_seq_no number
_primary_term number
_version number
sort union[]
max_score union number | string nullable
aggregations map string to {} Aggregation result
_clusters object
skipped number required
successful number required
total number required
running number required
partial number required
failed number required
details map string to object
<string> object
status enum required
Values: running successful partial skipped failed
indices string required
took number
timed_out boolean required
_shards object
Same fields as _shards
failures object[]
Same fields as failures in _shards
fields map string to object
max_score number
num_reduce_phases number
profile object
shards object[] required
aggregations object[] required
breakdown object required
build_aggregation number required
build_aggregation_count number required
build_leaf_collector number required
build_leaf_collector_count number required
collect number required
collect_count number required
initialize number required
initialize_count number required
post_collection number
post_collection_count number
reduce number required
reduce_count number required
description string required
time_in_nanos number required
type string required
debug object
segments_with_multi_valued_ords number
collection_strategy string
segments_with_single_valued_ords number
total_buckets number
built_buckets number
result_strategy string
has_filter boolean
delegate string
delegate_debug object
Same fields as debug in aggregations
chars_fetched number
extract_count number
extract_ns number
values_fetched number
collect_analyzed_ns number
collect_analyzed_count number
surviving_buckets number
ordinals_collectors_used number
ordinals_collectors_overhead_too_high number
string_hashing_collectors_used number
numeric_collectors_used number
empty_collectors_used number
deferred_aggregators string[]
segments_with_doc_count_field number
segments_with_deleted_docs number
filters object[]
results_from_metadata number
query string
specialized_for string
segments_counted_in_constant_time number
segments_counted number
segments_collected number
map_reducer string
brute_force_used number
dynamic_pruning_attempted number
dynamic_pruning_used number
skipped_due_to_no_data number
children object[]
Same fields as aggregations in shards
cluster string required
dfs object
statistics object
type string required
description string required
time string
time_in_nanos number required
breakdown object required
collection_statistics number required
collection_statistics_count number required
create_weight number required
create_weight_count number required
rewrite number required
rewrite_count number required
term_statistics number required
term_statistics_count number required
debug map string to object
children object[]
Same fields as statistics in dfs
knn object[]
vector_operations_count number
query object[] required
type string required
description string required
time string
time_in_nanos number required
breakdown object required
advance number required
advance_count number required
build_scorer number required
build_scorer_count number required
compute_max_score number required
compute_max_score_count number required
count_weight number required
count_weight_count number required
create_weight number required
create_weight_count number required
match number required
match_count number required
next_doc number required
next_doc_count number required
score number required
score_count number required
set_min_competitive_score number required
set_min_competitive_score_count number required
shallow_advance number required
shallow_advance_count number required
debug map string to object
children object[]
Same fields as query in knn
rewrite_time number required
collector object[] required
name string required
reason string required
time string
time_in_nanos number required
children object[]
Same fields as collector in knn
fetch object
type string required
description string required
time_in_nanos number required
breakdown object required
load_source number
load_source_count number
load_stored_fields number
load_stored_fields_count number
next_reader number
next_reader_count number
process_count number
process number
debug object
stored_fields string[]
fast_path number
children object[]
Same fields as fetch in shards
id string required
index string required
node_id string required
rescore union oneOf[]

One entry per rescorer, in the order they ran. Omitted when the request has no rescorer.

One of:
type enum required
Values: query
description string required

What the rescorer runs.

time_in_nanos number required

The total time spent in the rescorer, including the time spent running its queries.

time string

The time spent in the rescorer, in human-readable units. Only returned when human is true.

debug map string to object

Extra details about the rescorer.

Every rescorer reports window_size, the number of top documents it was configured to rescore. timed_out is set to true if the search timed out while the rescorer was running. Rescorers can add their own keys.

breakdown object required

The query rescorer does not report any steps.

searches object[] required
collector object[] required
name string required
reason string required
time_in_nanos number required
children object[]
Same fields as collector in searches
query object[] required
breakdown object required
advance number required
advance_count number required
build_scorer number required
build_scorer_count number required
create_weight number required
create_weight_count number required
match number required
match_count number required
shallow_advance number required
shallow_advance_count number required
next_doc number required
next_doc_count number required
score number required
score_count number required
compute_max_score number required
compute_max_score_count number required
count_weight number required
count_weight_count number required
set_min_competitive_score number required
set_min_competitive_score_count number required
description string required
time_in_nanos number required
type string required
debug map string to object

Extra details about the query.

Queries run by a rescorer include a rescorer key with the position of that rescorer in the shard's rescore array.

children object[]
Same fields as query in searches
rewrite_time number required
shard_id number required
request object

When profiling is enabled, the original query source and target indices from the coordinating request.

source object

Original query source from the search request (SearchSourceBuilder as JSON).

aggregations map string to {} Aggregation

Defines the aggregations that are run as part of the search request.

collapse object

Collapses search results the values of the specified field.

Same fields as collapse
explain boolean · default: false

If true, the request returns detailed information about score computation as part of a hit.

ext map string to object

Configuration of search extensions defined by Elasticsearch plugins.

from number · default: 0

The starting document offset, which must be non-negative. By default, you cannot page through more than 10,000 hits using the from and size parameters. To page through more hits, use the search_after parameter.

highlight object

Specifies the highlighter to use for retrieving highlighted snippets from one or more fields in your search results.

Same fields as highlight in inner_hits
track_total_hits boolean | number · default: 10000

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.

indices_boost string to number[]

Boost the _score of documents from specified indices. The boost value is the factor by which scores are multiplied. A boost value greater than 1.0 increases the score. A boost value between 0 and 1.0 decreases the score.

docvalue_fields object[]

An array of wildcard (*) field patterns. The request returns doc values for field names matching these patterns in the hits.fields property of the response.

field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
knn union oneOf

The approximate kNN search to run.

object or object[]
Same options as knn
min_score number

The minimum _score for matching documents. Documents with a lower _score are not included in search results or results collected by aggregations.

post_filter {} Query

Use the post_filter parameter to filter search results. The search hits are filtered after the aggregations are calculated. A post filter has no impact on the aggregation results.

profile boolean · default: false

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.

query {} Query

The search definition using the Query DSL.

rescore union oneOf

Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the query and post_filter phases.

object or object[]
Same options as rescore
retriever object

A retriever is a specification to describe top documents returned from a search. A retriever replaces other elements of the search API that also return top documents such as query and knn.

Same fields as retriever
script_fields map string to object

Retrieve a script evaluation (based on different fields) for each hit.

<string> object
script string required
ignore_failure boolean
search_after union[]

Used to retrieve the next page of hits using a set of sort values from the previous page.

size number · default: 10

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 and size parameters. To page through more hits, use the search_after property.

slice object

Split a scrolled search into multiple slices that can be consumed independently.

field string
id string required
max number required
sort union oneOf

A comma-separated list of

Same options as sort in inner_hits
_source union oneOf

The source fields that are returned for matching documents. These fields are returned in the hits._source property of the search response. If the stored_fields property is specified, the _source property defaults to false. Otherwise, it defaults to true.

One of:
fields object[]

An array of wildcard (*) field patterns. The request returns values for field names matching these patterns in the hits.fields property of the response.

field string required

A wildcard pattern. The request returns values for field names matching this pattern.

format string

The format in which the values are returned.

include_unmapped boolean
suggest object

Defines a suggester that provides similar looking terms based on a provided text.

text string

Global suggest text, to avoid repetition when the same text is used in several suggesters

terminate_after number · default: 0

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.

timeout string

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.

track_scores boolean · default: false

If true, calculate and return document scores, even if the scores are not used for sorting.

version boolean · default: false

If true, the request returns the document version as part of a hit.

seq_no_primary_term boolean

If true, the request returns sequence number and primary term of the last modification of each hit.

stored_fields union oneOf

A comma-separated list of stored fields to return as part of a hit. If no fields are specified, no stored fields are included in the response. If this field is specified, the _source property defaults to false. You can pass _source: true to return both source fields and stored fields in the search response.

One of: string[] or string
pit object

Limit the search to a point in time (PIT). If you provide a PIT, you cannot specify an <index> in the request path.

id string required
keep_alive string
runtime_mappings object

One or more runtime fields in the search request. These fields take precedence over mapped fields with the same name.

stats string[]

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.

indices string[]

Target index expressions from the request (before index resolution).

pit_id string

An updated identifier for the point-in-time that was searched.

Important

Each search request against a PIT returns in its response a pit_id field which may be different from the identifier you originally supplied. Always use the most recently-received PIT identifier for the next request. If you make concurrent search requests against the same PIT, Elasticsearch can return several different pit_id values in its responses. In that case, use any of these values for later requests, preferring more recently-received values whenever possible.

_scroll_id string

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 scroll query parameter is specified in the request.

suggest map string to oneOf
terminated_early boolean