2013-08-28 19:24:34 -04:00
|
|
|
|
[[search-search]]
|
2020-05-05 11:10:34 -04:00
|
|
|
|
=== Search API
|
|
|
|
|
++++
|
|
|
|
|
<titleabbrev>Search</titleabbrev>
|
|
|
|
|
++++
|
2013-08-28 19:24:34 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
Returns search hits that match the query defined in the request.
|
|
|
|
|
|
2019-09-09 12:35:50 -04:00
|
|
|
|
[source,console]
|
2019-09-30 13:54:06 -04:00
|
|
|
|
----
|
2020-07-21 13:25:53 -04:00
|
|
|
|
GET /my-index-000001/_search
|
2019-09-30 13:54:06 -04:00
|
|
|
|
----
|
2020-07-21 13:25:53 -04:00
|
|
|
|
// TEST[setup:my_index]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
[[search-search-api-request]]
|
|
|
|
|
==== {api-request-title}
|
|
|
|
|
|
2020-06-18 08:59:00 -04:00
|
|
|
|
`GET /<target>/_search`
|
2019-09-30 13:54:06 -04:00
|
|
|
|
|
|
|
|
|
`GET /_search`
|
|
|
|
|
|
2020-06-18 08:59:00 -04:00
|
|
|
|
`POST /<target>/_search`
|
2020-05-05 11:10:34 -04:00
|
|
|
|
|
2019-09-30 13:54:06 -04:00
|
|
|
|
`POST /_search`
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
[[search-search-api-desc]]
|
|
|
|
|
==== {api-description-title}
|
|
|
|
|
|
2020-03-23 21:05:15 -04:00
|
|
|
|
Allows you to execute a search query and get back search hits that match the
|
2020-05-05 11:10:34 -04:00
|
|
|
|
query. You can provide search queries using the <<search-api-query-params-q,`q`
|
|
|
|
|
query string parameter>> or <<search-request-body,request body>>.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
[[search-search-api-path-params]]
|
|
|
|
|
==== {api-path-parms-title}
|
|
|
|
|
|
2020-06-18 08:59:00 -04:00
|
|
|
|
`<target>`::
|
|
|
|
|
(Optional, string)
|
2020-06-30 15:55:37 -04:00
|
|
|
|
Comma-separated list of data streams, indices, and index aliases to search.
|
|
|
|
|
Wildcard (`*`) expressions are supported.
|
2020-06-18 08:59:00 -04:00
|
|
|
|
+
|
|
|
|
|
To search all data streams and indices in a cluster, omit this parameter or use
|
|
|
|
|
`_all` or `*`.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
2020-06-09 13:01:17 -04:00
|
|
|
|
[role="child_attributes"]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
[[search-search-api-query-params]]
|
|
|
|
|
==== {api-query-parms-title}
|
|
|
|
|
|
2020-06-02 12:12:29 -04:00
|
|
|
|
IMPORTANT: Several options for this API can be specified using a query parameter
|
|
|
|
|
or a request body parameter. If both parameters are specified, only the query
|
|
|
|
|
parameter is used.
|
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=allow-no-indices]
|
2020-02-24 05:57:32 -05:00
|
|
|
|
+
|
|
|
|
|
Defaults to `true`.
|
|
|
|
|
|
2020-05-05 11:10:34 -04:00
|
|
|
|
[[search-partial-responses]]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`allow_partial_search_results`::
|
2020-05-05 11:10:34 -04:00
|
|
|
|
(Optional, boolean)
|
|
|
|
|
If `true`, returns partial results if there are request timeouts or
|
|
|
|
|
<<shard-failures,shard failures>>. If `false`, returns an error with
|
|
|
|
|
no partial results. Defaults to `true`.
|
|
|
|
|
+
|
2020-06-09 13:01:17 -04:00
|
|
|
|
To override the default for this field, set the
|
2020-05-05 11:10:34 -04:00
|
|
|
|
`search.default_allow_partial_results` cluster setting to `false`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`batched_reduce_size`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, integer) The number of shard results that should be reduced at once
|
|
|
|
|
on the coordinating node. This value should be used as a protection mechanism
|
|
|
|
|
to reduce the memory overhead per search request if the potential number of
|
|
|
|
|
shards in the request can be large. Defaults to `512`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-05-07 11:00:03 -04:00
|
|
|
|
[[ccs-minimize-roundtrips]]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`ccs_minimize_roundtrips`::
|
2020-06-09 13:01:17 -04:00
|
|
|
|
(Optional, boolean) If `true`, network round-trips between the
|
|
|
|
|
coordinating node and the remote clusters are minimized when executing
|
2020-05-07 11:00:03 -04:00
|
|
|
|
{ccs} (CCS) requests. See <<ccs-network-delays>>. Defaults to `true`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`docvalue_fields`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, string) A comma-separated list of fields to return as the docvalue
|
|
|
|
|
representation of a field for each hit.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=expand-wildcards]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
+
|
|
|
|
|
Defaults to `open`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`explain`::
|
2020-05-11 11:29:38 -04:00
|
|
|
|
(Optional, boolean) If `true`, returns detailed information about score
|
|
|
|
|
computation as part of a hit. Defaults to `false`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=from]
|
2020-05-07 11:00:03 -04:00
|
|
|
|
+
|
|
|
|
|
--
|
2020-06-01 16:43:06 -04:00
|
|
|
|
By default, you cannot page through more than 10,000 documents using the `from`
|
|
|
|
|
and `size` parameters. This limit is set using the
|
|
|
|
|
<<index-max-result-window,`index.max_result_window`>> index setting.
|
|
|
|
|
|
|
|
|
|
Deep paging or requesting many results at once can result in slow searches.
|
|
|
|
|
Results are sorted before being returned. Because search requests usually span
|
|
|
|
|
multiple shards, each shard must generate its own sorted results. These separate
|
|
|
|
|
results must then be combined and sorted to ensure that the overall order is
|
|
|
|
|
correct.
|
|
|
|
|
|
2020-06-01 18:01:46 -04:00
|
|
|
|
As an alternative to deep paging, we recommend using
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results,scroll>> or the
|
|
|
|
|
<<search-after,`search_after`>> parameter.
|
2020-05-07 11:00:03 -04:00
|
|
|
|
--
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
`ignore_throttled`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, boolean) If `true`, concrete, expanded or aliased indices will be
|
2020-07-22 16:53:18 -04:00
|
|
|
|
ignored when frozen. Defaults to `true`.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=index-ignore-unavailable]
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`max_concurrent_shard_requests`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, integer) Defines the number of concurrent shard requests per node
|
|
|
|
|
this search executes 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. Defaults to `5`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`pre_filter_shard_size`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, integer) Defines 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 ie. 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.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
2020-08-24 09:31:53 -04:00
|
|
|
|
[[search-preference]]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`preference`::
|
2020-08-24 09:31:53 -04:00
|
|
|
|
(Optional, string)
|
|
|
|
|
Nodes and shards used for the search. By default, {es} selects from eligible
|
|
|
|
|
nodes and shards using <<search-adaptive-replica,adaptive replica selection>>,
|
|
|
|
|
accounting for <<shard-allocation-awareness,allocation awareness>>.
|
|
|
|
|
+
|
|
|
|
|
.Valid values for `preference`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
|
|
|
|
`_only_local`::
|
|
|
|
|
Run the search only on shards on the local node.
|
|
|
|
|
|
|
|
|
|
`_local`::
|
|
|
|
|
If possible, run the search on shards on the local node. If not, select shards
|
|
|
|
|
using the default method.
|
|
|
|
|
|
|
|
|
|
`_only_nodes:<node-id>,<node-id>`::
|
|
|
|
|
Run the search on only the specified nodes IDs. If suitable shards exist on more
|
|
|
|
|
than one selected nodes, 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>`::
|
|
|
|
|
If possible, run the search on the specified nodes IDs. If not, select shards
|
|
|
|
|
using the default method.
|
|
|
|
|
|
|
|
|
|
`_shards:<shard>,<shard>`::
|
|
|
|
|
Run the search only on the specified shards. This value can be combined with
|
|
|
|
|
other `preference` values, but this value must come first. For example:
|
|
|
|
|
`_shards:2,3|_local`
|
|
|
|
|
|
|
|
|
|
<custom-string>::
|
|
|
|
|
Any string that does not start with `_`. If the cluster state and selected
|
|
|
|
|
shards do not change, searches using the same `<custom-string>` value are routed
|
|
|
|
|
to the same shards in the same order.
|
|
|
|
|
====
|
|
|
|
|
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-05-05 11:10:34 -04:00
|
|
|
|
[[search-api-query-params-q]]
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=search-q]
|
2020-05-05 11:10:34 -04:00
|
|
|
|
+
|
|
|
|
|
You can use the `q` parameter to run a query parameter search. Query parameter
|
|
|
|
|
searches do not support the full {es} <<query-dsl,Query DSL>> but are handy for
|
|
|
|
|
testing.
|
2020-06-02 12:12:29 -04:00
|
|
|
|
+
|
|
|
|
|
IMPORTANT: The `q` parameter overrides the <<request-body-search-query,`query`>>
|
2020-05-05 11:10:34 -04:00
|
|
|
|
parameter in the request body. If both parameters are specified, documents
|
2020-06-09 13:01:17 -04:00
|
|
|
|
matching the `query` request body parameter are not returned.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
`request_cache`::
|
2020-05-07 11:00:03 -04:00
|
|
|
|
(Optional, boolean) If `true`, the caching of search results is enabled for
|
|
|
|
|
requests where `size` is `0`. See <<shard-request-cache>>. Defaults to index
|
|
|
|
|
level settings.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`rest_total_hits_as_int`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, boolean) Indicates whether hits.total should be rendered as an
|
|
|
|
|
integer or an object in the rest search response. Defaults to `false`.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
2020-06-17 15:19:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=routing]
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-02 10:11:12 -04:00
|
|
|
|
[[search-api-scroll-query-param]]
|
|
|
|
|
`scroll`::
|
|
|
|
|
(Optional, <<time-units,time value>>)
|
|
|
|
|
Period to retain the <<scroll-search-context,search context>> for scrolling. See
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results>>.
|
2020-06-02 10:11:12 -04:00
|
|
|
|
+
|
2020-07-02 08:43:18 -04:00
|
|
|
|
By default, this value cannot exceed `1d` (24 hours). You can change
|
2020-06-02 10:11:12 -04:00
|
|
|
|
this limit using the `search.max_keep_alive` cluster-level setting.
|
|
|
|
|
|
2020-08-24 09:31:53 -04:00
|
|
|
|
[[search-type]]
|
|
|
|
|
`search_type`::
|
|
|
|
|
(Optional, string)
|
|
|
|
|
How {wikipedia}/Tf–idf[distributed term frequencies] are calculated for
|
|
|
|
|
<<relevance-scores,relevance scoring>>.
|
|
|
|
|
+
|
|
|
|
|
.Valid values for `search_type`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
|
|
|
|
`query_then_fetch`::
|
|
|
|
|
(Default)
|
|
|
|
|
Distributed term frequencies are calculated locally for each shard running the
|
|
|
|
|
search. We recommend this option for faster searches with potentially less
|
|
|
|
|
accurate scoring.
|
|
|
|
|
|
|
|
|
|
[[dfs-query-then-fetch]]
|
|
|
|
|
`dfs_query_then_fetch`::
|
|
|
|
|
Distributed term frequencies are calculated globally, using information gathered
|
|
|
|
|
from all shards running the search. While this option increases the accuracy of
|
|
|
|
|
scoring, it adds a round-trip to each shard, which can result in slower
|
|
|
|
|
searches.
|
|
|
|
|
====
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
`seq_no_primary_term`::
|
2020-05-11 11:29:38 -04:00
|
|
|
|
(Optional, boolean) If `true`, returns sequence number and primary term of the
|
|
|
|
|
last modification of each hit. See <<optimistic-concurrency-control>>.
|
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`size`::
|
2020-05-07 11:00:03 -04:00
|
|
|
|
(Optional, integer) Defines the number of hits to return. Defaults to `10`.
|
|
|
|
|
+
|
|
|
|
|
--
|
2020-06-01 16:43:06 -04:00
|
|
|
|
By default, you cannot page through more than 10,000 documents using the `from`
|
|
|
|
|
and `size` parameters. This limit is set using the
|
|
|
|
|
<<index-max-result-window,`index.max_result_window`>> index setting.
|
|
|
|
|
|
|
|
|
|
Deep paging or requesting many results at once can result in slow searches.
|
|
|
|
|
Results are sorted before being returned. Because search requests usually span
|
|
|
|
|
multiple shards, each shard must generate its own sorted results. These separate
|
|
|
|
|
results must then be combined and sorted to ensure that the overall order is
|
|
|
|
|
correct.
|
|
|
|
|
|
2020-06-01 18:01:46 -04:00
|
|
|
|
As an alternative to deep paging, we recommend using
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results,scroll>> or the
|
|
|
|
|
<<search-after,`search_after`>> parameter.
|
2020-06-01 16:43:06 -04:00
|
|
|
|
|
2020-06-02 10:11:12 -04:00
|
|
|
|
If the <<search-api-scroll-query-param,`scroll` parameter>> is specified, this
|
2020-06-02 12:12:29 -04:00
|
|
|
|
value cannot be `0`.
|
2020-05-07 11:00:03 -04:00
|
|
|
|
--
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`sort`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, string) A comma-separated list of <field>:<direction> pairs.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`_source`::
|
2020-06-09 13:01:17 -04:00
|
|
|
|
(Optional)
|
|
|
|
|
Indicates which <<mapping-source-field,source fields>> are returned for matching
|
|
|
|
|
documents. These fields are returned in the `hits._source` property of
|
|
|
|
|
the search response. Defaults to `true`.
|
|
|
|
|
+
|
|
|
|
|
.Valid values for `_source`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
|
|
|
|
`true`::
|
|
|
|
|
(boolean)
|
|
|
|
|
The entire document source is returned.
|
|
|
|
|
|
|
|
|
|
`false`::
|
|
|
|
|
(boolean)
|
|
|
|
|
The document source is not returned.
|
|
|
|
|
|
|
|
|
|
`<string>`::
|
|
|
|
|
(string)
|
|
|
|
|
Comma-separated list of source fields to return.
|
|
|
|
|
Wildcard (`*`) patterns are supported.
|
|
|
|
|
====
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=source_excludes]
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=source_includes]
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`stats`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, string) Specific `tag` of the request for logging and statistical
|
|
|
|
|
purposes.
|
2019-08-22 09:04:20 -04:00
|
|
|
|
|
|
|
|
|
`stored_fields`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, 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.
|
2020-06-09 13:01:17 -04:00
|
|
|
|
+
|
|
|
|
|
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.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`suggest_field`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, string) Specifies which field to use for suggestions.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`suggest_text`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, string) The source text for which the suggestions should be
|
|
|
|
|
returned.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=terminate_after]
|
2020-05-05 11:10:34 -04:00
|
|
|
|
+
|
|
|
|
|
Defaults to `0`, which does not terminate query execution early.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2020-04-28 09:43:52 -04:00
|
|
|
|
`timeout`::
|
2020-05-07 11:00:03 -04:00
|
|
|
|
(Optional, <<time-units, time units>>) Specifies the period of time to wait
|
|
|
|
|
for a response. If no response is received before the timeout expires, the
|
|
|
|
|
request fails and returns an error. Defaults to no timeout.
|
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`track_scores`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, boolean) If `true`, calculate and return document scores, even if
|
|
|
|
|
the scores are not used for sorting. Defaults to `false`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`track_total_hits`::
|
2020-05-05 11:10:34 -04:00
|
|
|
|
(Optional, integer or boolean)
|
|
|
|
|
Number of hits matching the query to count accurately. Defaults to `10000`.
|
|
|
|
|
+
|
|
|
|
|
If `true`, the default value is used. If `false`, the response does not
|
|
|
|
|
include the total number of hits matching the query.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`typed_keys`::
|
2020-06-04 10:02:39 -04:00
|
|
|
|
(Optional, boolean) If `true`, aggregation and suggester names are be prefixed
|
|
|
|
|
by their respective types in the response. Defaults to `true`.
|
2020-03-23 21:05:15 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`version`::
|
2020-05-11 11:29:38 -04:00
|
|
|
|
(Optional, boolean)
|
|
|
|
|
If `true`, returns document version as part of a hit. Defaults to `false`.
|
|
|
|
|
|
2020-06-09 13:01:17 -04:00
|
|
|
|
[role="child_attributes"]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
[[search-search-api-request-body]]
|
|
|
|
|
==== {api-request-body-title}
|
|
|
|
|
|
2020-06-11 11:25:04 -04:00
|
|
|
|
[[search-docvalue-fields-param]]
|
|
|
|
|
`docvalue_fields`::
|
|
|
|
|
(Optional, array of strings and objects)
|
|
|
|
|
Array of wildcard (`*`) patterns. The request returns doc values for field names
|
|
|
|
|
matching these patterns in the `hits.fields` property of the response.
|
|
|
|
|
+
|
|
|
|
|
You can specify items in the array as a string or object.
|
|
|
|
|
See <<docvalue-fields>>.
|
|
|
|
|
+
|
|
|
|
|
.Properties of `docvalue_fields` objects
|
2020-08-24 09:31:53 -04:00
|
|
|
|
[%collapsible%open]
|
2020-06-11 11:25:04 -04:00
|
|
|
|
====
|
|
|
|
|
`field`::
|
|
|
|
|
(Required, string)
|
|
|
|
|
Wildcard pattern. The request returns doc values for field names matching this
|
|
|
|
|
pattern.
|
|
|
|
|
|
|
|
|
|
`format`::
|
|
|
|
|
(Optional, string)
|
|
|
|
|
Format in which the doc values are returned.
|
|
|
|
|
+
|
|
|
|
|
For <<date,date fields>>, you can specify a date <<mapping-date-format,date
|
|
|
|
|
`format`>>. For <<number,numeric fields>> fields, you can specify a
|
|
|
|
|
https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html[DecimalFormat
|
|
|
|
|
pattern].
|
|
|
|
|
+
|
2020-07-07 14:59:35 -04:00
|
|
|
|
For other field data types, this parameter is not supported.
|
2020-06-11 11:25:04 -04:00
|
|
|
|
====
|
|
|
|
|
|
2020-05-11 11:29:38 -04:00
|
|
|
|
[[request-body-search-explain]]
|
|
|
|
|
`explain`::
|
|
|
|
|
(Optional, boolean) If `true`, returns detailed information about score
|
|
|
|
|
computation as part of a hit. Defaults to `false`.
|
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=from]
|
2020-05-07 11:00:03 -04:00
|
|
|
|
+
|
|
|
|
|
--
|
2020-06-01 16:43:06 -04:00
|
|
|
|
By default, you cannot page through more than 10,000 documents using the `from`
|
|
|
|
|
and `size` parameters. This limit is set using the
|
|
|
|
|
<<index-max-result-window,`index.max_result_window`>> index setting.
|
|
|
|
|
|
|
|
|
|
Deep paging or requesting many results at once can result in slow searches.
|
|
|
|
|
Results are sorted before being returned. Because search requests usually span
|
|
|
|
|
multiple shards, each shard must generate its own sorted results. These separate
|
|
|
|
|
results must then be combined and sorted to ensure that the overall order is
|
|
|
|
|
correct.
|
|
|
|
|
|
2020-06-01 18:01:46 -04:00
|
|
|
|
As an alternative to deep paging, we recommend using
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results,scroll>> or the
|
|
|
|
|
<<search-after,`search_after`>> parameter.
|
2020-05-07 11:00:03 -04:00
|
|
|
|
--
|
|
|
|
|
|
2020-08-24 09:31:53 -04:00
|
|
|
|
`indices_boost`::
|
|
|
|
|
(Optional, array of objects)
|
|
|
|
|
Boosts the <<relevance-scores,`_score`>> of documents from specified indices.
|
|
|
|
|
+
|
|
|
|
|
.Properties of `indices_boost` objects
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
|
|
|
|
`<index>: <boost-value>`::
|
|
|
|
|
(Required, float)
|
|
|
|
|
`<index>` is the name of the index or index alias. Wildcard (`*`) expressions
|
|
|
|
|
are supported.
|
|
|
|
|
+
|
|
|
|
|
`<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.
|
|
|
|
|
====
|
|
|
|
|
|
2020-08-10 09:43:07 -04:00
|
|
|
|
[[search-api-min-score]]
|
|
|
|
|
`min_score`::
|
|
|
|
|
(Optional, float)
|
|
|
|
|
Minimum <<relevance-scores,`_score`>> for matching documents. Documents with a
|
|
|
|
|
lower `_score` are not included in the search results.
|
|
|
|
|
|
2020-05-11 11:29:38 -04:00
|
|
|
|
[[request-body-search-query]]
|
2019-08-22 09:04:20 -04:00
|
|
|
|
`query`::
|
2020-05-11 11:29:38 -04:00
|
|
|
|
(Optional, <<query-dsl,query object>>) Defines the search definition using the
|
|
|
|
|
<<query-dsl,Query DSL>>.
|
|
|
|
|
|
|
|
|
|
[[request-body-search-seq-no-primary-term]]
|
|
|
|
|
`seq_no_primary_term`::
|
|
|
|
|
(Optional, boolean) If `true`, returns sequence number and primary term of the
|
|
|
|
|
last modification of each hit. See <<optimistic-concurrency-control>>.
|
|
|
|
|
|
2020-05-07 11:00:03 -04:00
|
|
|
|
`size`::
|
|
|
|
|
(Optional, integer) The number of hits to return. Defaults to `10`.
|
|
|
|
|
+
|
|
|
|
|
--
|
2020-06-01 16:43:06 -04:00
|
|
|
|
By default, you cannot page through more than 10,000 documents using the `from`
|
|
|
|
|
and `size` parameters. This limit is set using the
|
|
|
|
|
<<index-max-result-window,`index.max_result_window`>> index setting.
|
|
|
|
|
|
|
|
|
|
Deep paging or requesting many results at once can result in slow searches.
|
|
|
|
|
Results are sorted before being returned. Because search requests usually span
|
|
|
|
|
multiple shards, each shard must generate its own sorted results. These separate
|
|
|
|
|
results must then be combined and sorted to ensure that the overall order is
|
|
|
|
|
correct.
|
|
|
|
|
|
2020-06-01 18:01:46 -04:00
|
|
|
|
As an alternative to deep paging, we recommend using
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results,scroll>> or the
|
|
|
|
|
<<search-after,`search_after`>> parameter.
|
2020-06-01 16:43:06 -04:00
|
|
|
|
|
2020-06-02 10:11:12 -04:00
|
|
|
|
If the <<search-api-scroll-query-param,`scroll` parameter>> is specified, this
|
2020-06-02 12:12:29 -04:00
|
|
|
|
value cannot be `0`.
|
2020-05-07 11:00:03 -04:00
|
|
|
|
--
|
|
|
|
|
|
2020-06-09 13:01:17 -04:00
|
|
|
|
`_source`::
|
|
|
|
|
(Optional)
|
|
|
|
|
Indicates which <<mapping-source-field,source fields>> are returned for matching
|
|
|
|
|
documents. These fields are returned in the `hits._source` property of
|
|
|
|
|
the search response. Defaults to `true`.
|
|
|
|
|
+
|
|
|
|
|
.Valid values for `_source`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
|
|
|
|
`true`::
|
|
|
|
|
(boolean)
|
|
|
|
|
The entire document source is returned.
|
|
|
|
|
|
|
|
|
|
`false`::
|
|
|
|
|
(boolean)
|
|
|
|
|
The document source is not returned.
|
|
|
|
|
|
|
|
|
|
`<wildcard_pattern>`::
|
|
|
|
|
(string or array of strings)
|
|
|
|
|
Wildcard (`*`) pattern or array of patterns containing source fields to return.
|
|
|
|
|
|
|
|
|
|
`<object>`::
|
|
|
|
|
(object)
|
|
|
|
|
Object containing a list of source fields to include or exclude.
|
|
|
|
|
+
|
|
|
|
|
.Properties for `<object>`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
=====
|
|
|
|
|
`excludes`::
|
|
|
|
|
(string or array of strings)
|
|
|
|
|
Wildcard (`*`) pattern or array of patterns containing source fields to exclude
|
|
|
|
|
from the response.
|
|
|
|
|
+
|
|
|
|
|
You can also use this property to exclude fields from the subset specified in
|
|
|
|
|
`includes` property.
|
|
|
|
|
|
|
|
|
|
`includes`::
|
|
|
|
|
(string or array of strings)
|
|
|
|
|
Wildcard (`*`) pattern or array of patterns containing source fields to return.
|
|
|
|
|
+
|
|
|
|
|
If this property is specified, only these source fields are returned. You can
|
|
|
|
|
exclude fields from this subset using the `excludes` property.
|
|
|
|
|
=====
|
|
|
|
|
====
|
|
|
|
|
|
2020-08-24 09:31:53 -04:00
|
|
|
|
[[stats-groups]]
|
|
|
|
|
`stats`::
|
|
|
|
|
(Optional, array of strings)
|
|
|
|
|
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,indices stats API>>.
|
|
|
|
|
|
2020-06-01 19:42:53 -04:00
|
|
|
|
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=terminate_after]
|
2020-05-07 11:00:03 -04:00
|
|
|
|
+
|
|
|
|
|
Defaults to `0`, which does not terminate query execution early.
|
|
|
|
|
|
|
|
|
|
`timeout`::
|
|
|
|
|
(Optional, <<time-units, time units>>) Specifies the period of time to wait
|
|
|
|
|
for a response. If no response is received before the timeout expires, the
|
|
|
|
|
request fails and returns an error. Defaults to no timeout.
|
|
|
|
|
|
2020-05-11 11:29:38 -04:00
|
|
|
|
[[request-body-search-version]]
|
|
|
|
|
`version`::
|
|
|
|
|
(Optional, boolean)
|
|
|
|
|
If `true`, returns document version as part of a hit. Defaults to `false`.
|
|
|
|
|
|
|
|
|
|
|
2020-05-04 16:57:10 -04:00
|
|
|
|
[role="child_attributes"]
|
2019-09-30 13:54:06 -04:00
|
|
|
|
[[search-api-response-body]]
|
|
|
|
|
==== {api-response-body-title}
|
|
|
|
|
|
2020-06-02 10:11:12 -04:00
|
|
|
|
`_scroll_id`::
|
|
|
|
|
(string)
|
|
|
|
|
Identifier for the search and its <<scroll-search-context,search context>>.
|
|
|
|
|
+
|
|
|
|
|
You can use this scroll ID with the <<scroll-api,scroll API>> to retrieve the
|
|
|
|
|
next batch of search results for the request. See
|
2020-07-31 12:40:40 -04:00
|
|
|
|
<<scroll-search-results>>.
|
2020-06-02 10:11:12 -04:00
|
|
|
|
+
|
|
|
|
|
This parameter is only returned if the <<search-api-scroll-query-param,`scroll`
|
|
|
|
|
query parameter>> is specified in the request.
|
|
|
|
|
|
2019-09-30 13:54:06 -04:00
|
|
|
|
`took`::
|
|
|
|
|
+
|
|
|
|
|
--
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(integer)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Milliseconds it took {es} to execute 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.
|
|
|
|
|
|
|
|
|
|
Took time includes:
|
|
|
|
|
|
|
|
|
|
* Communication time between the coordinating node and data nodes
|
|
|
|
|
* Time the request spends in the `search` <<modules-threadpool,thread pool>>,
|
|
|
|
|
queued for execution
|
|
|
|
|
* Actual execution time
|
|
|
|
|
|
|
|
|
|
Took time does *not* include:
|
|
|
|
|
|
|
|
|
|
* Time needed to send the request to {es}
|
|
|
|
|
* Time needed to serialize the JSON response
|
|
|
|
|
* Time needed to send the response to a client
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
`timed_out`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(boolean)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
If `true`,
|
|
|
|
|
the request timed out before completion;
|
|
|
|
|
returned results may be partial or empty.
|
|
|
|
|
|
|
|
|
|
`_shards`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(object)
|
|
|
|
|
Contains a count of shards used for the request.
|
2019-09-30 13:54:06 -04:00
|
|
|
|
+
|
2020-05-04 16:57:10 -04:00
|
|
|
|
.Properties of `_shards`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
2019-09-30 13:54:06 -04:00
|
|
|
|
`total`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(integer)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Total number of shards that require querying,
|
|
|
|
|
including unallocated shards.
|
|
|
|
|
|
|
|
|
|
`successful`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(integer)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Number of shards that executed the request successfully.
|
|
|
|
|
|
|
|
|
|
`skipped`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(integer)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Number of shards that skipped the request because a lightweight check
|
|
|
|
|
helped realize that no documents could possibly match on this shard. This
|
|
|
|
|
typically happens when a search request includes a range filter and the
|
|
|
|
|
shard only has values that fall outside of that range.
|
|
|
|
|
|
|
|
|
|
`failed`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(integer)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Number of shards that failed to execute the request. Note that shards
|
|
|
|
|
that are not allocated will be considered neither successful nor failed.
|
|
|
|
|
Having `failed+successful` less than `total` is thus an indication that
|
|
|
|
|
some of the shards were not allocated.
|
2020-05-04 16:57:10 -04:00
|
|
|
|
====
|
2019-09-30 13:54:06 -04:00
|
|
|
|
|
|
|
|
|
`hits`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(object)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Contains returned documents and metadata.
|
2020-05-04 16:57:10 -04:00
|
|
|
|
+
|
|
|
|
|
.Properties of `hits`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
====
|
2019-09-30 13:54:06 -04:00
|
|
|
|
`total`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(object)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Metadata about the number of returned documents.
|
|
|
|
|
+
|
2020-05-04 16:57:10 -04:00
|
|
|
|
.Properties of `total`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
=====
|
|
|
|
|
`value`::
|
|
|
|
|
(integer)
|
|
|
|
|
Total number of returned documents.
|
|
|
|
|
|
|
|
|
|
`relation`::
|
|
|
|
|
(string)
|
|
|
|
|
Indicates whether the number of returned documents in the `value`
|
|
|
|
|
parameter is accurate or a lower bound.
|
|
|
|
|
+
|
|
|
|
|
.Values of `relation`:
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
======
|
|
|
|
|
`eq`:: Accurate
|
|
|
|
|
`gte`:: Lower bound, including returned documents
|
|
|
|
|
======
|
|
|
|
|
=====
|
2019-09-30 13:54:06 -04:00
|
|
|
|
|
|
|
|
|
`max_score`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(float)
|
|
|
|
|
Highest returned <<search-api-response-body-score,document `_score`>>.
|
2019-09-30 13:54:06 -04:00
|
|
|
|
+
|
2020-05-04 16:57:10 -04:00
|
|
|
|
This value is `null` for requests that do not sort by `_score`.
|
2019-09-30 13:54:06 -04:00
|
|
|
|
|
2020-05-04 16:57:10 -04:00
|
|
|
|
[[search-api-response-body-hits]]
|
2019-09-30 13:54:06 -04:00
|
|
|
|
`hits`::
|
2020-05-04 16:57:10 -04:00
|
|
|
|
(array of objects)
|
2019-09-30 13:54:06 -04:00
|
|
|
|
Array of returned document objects.
|
|
|
|
|
+
|
2020-05-04 16:57:10 -04:00
|
|
|
|
.Properties of `hits` objects
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
=====
|
|
|
|
|
`_index`::
|
|
|
|
|
(string)
|
|
|
|
|
Name of the index containing the returned document.
|
|
|
|
|
|
|
|
|
|
`_type`::
|
|
|
|
|
deprecated:[6.0.0, Mapping types are deprecated and will be removed in 8.0. See <<removal-of-types>>.]
|
|
|
|
|
(string)
|
|
|
|
|
Mapping type of the returned document.
|
|
|
|
|
|
|
|
|
|
`_id`::
|
|
|
|
|
(string)
|
|
|
|
|
Unique identifier for the returned document.
|
|
|
|
|
This ID is only unique within the returned index.
|
|
|
|
|
|
|
|
|
|
[[search-api-response-body-score]]
|
|
|
|
|
`_score`::
|
|
|
|
|
(float)
|
|
|
|
|
Positive 32-bit floating point number used to determine the relevance of the
|
|
|
|
|
returned document.
|
|
|
|
|
|
|
|
|
|
[[search-api-response-body-source]]
|
|
|
|
|
`_source`::
|
|
|
|
|
(object)
|
|
|
|
|
Original JSON body passed for the document at index time.
|
2020-06-09 13:01:17 -04:00
|
|
|
|
+
|
|
|
|
|
You can use the `_source` parameter to exclude this property from the response
|
|
|
|
|
or specify which source fields to return.
|
2020-06-11 11:25:04 -04:00
|
|
|
|
|
|
|
|
|
`fields`::
|
|
|
|
|
+
|
|
|
|
|
--
|
|
|
|
|
(object)
|
|
|
|
|
Contains field values for the documents. These fields must be specified in the
|
|
|
|
|
request using one or more of the following request parameters:
|
|
|
|
|
|
|
|
|
|
* <<search-docvalue-fields-param,`docvalue_fields`>>
|
2020-08-06 13:06:06 -04:00
|
|
|
|
* <<script-fields,`script_fields`>>
|
|
|
|
|
* <<stored-fields,`stored_fields`>>
|
2020-06-11 11:25:04 -04:00
|
|
|
|
|
|
|
|
|
This property is returned only if one or more of these parameters are set.
|
|
|
|
|
--
|
|
|
|
|
+
|
|
|
|
|
.Properties of `fields`
|
|
|
|
|
[%collapsible%open]
|
|
|
|
|
======
|
|
|
|
|
`<field>`::
|
|
|
|
|
(array)
|
|
|
|
|
Key is the field name. Value is the value for the field.
|
|
|
|
|
======
|
2020-05-04 16:57:10 -04:00
|
|
|
|
=====
|
|
|
|
|
====
|
2019-09-30 13:54:06 -04:00
|
|
|
|
|
2019-08-22 09:04:20 -04:00
|
|
|
|
[[search-search-api-example]]
|
|
|
|
|
==== {api-examples-title}
|
|
|
|
|
|
2020-05-07 11:00:03 -04:00
|
|
|
|
[source,console]
|
2020-07-21 13:25:53 -04:00
|
|
|
|
----
|
|
|
|
|
GET /my-index-000001/_search
|
2020-05-07 11:00:03 -04:00
|
|
|
|
{
|
2020-06-04 10:02:39 -04:00
|
|
|
|
"query": {
|
|
|
|
|
"term": {
|
2020-07-21 13:25:53 -04:00
|
|
|
|
"user.id": "kimchy"
|
2020-05-07 11:00:03 -04:00
|
|
|
|
}
|
2020-06-04 10:02:39 -04:00
|
|
|
|
}
|
2020-05-07 11:00:03 -04:00
|
|
|
|
}
|
2020-07-21 13:25:53 -04:00
|
|
|
|
----
|
|
|
|
|
// TEST[setup:my_index]
|
2020-05-07 11:00:03 -04:00
|
|
|
|
|
|
|
|
|
The API returns the following response:
|
|
|
|
|
|
|
|
|
|
[source,console-result]
|
2020-07-21 13:25:53 -04:00
|
|
|
|
----
|
2020-05-07 11:00:03 -04:00
|
|
|
|
{
|
2020-07-21 13:25:53 -04:00
|
|
|
|
"took": 5,
|
2020-06-04 10:02:39 -04:00
|
|
|
|
"timed_out": false,
|
|
|
|
|
"_shards": {
|
|
|
|
|
"total": 1,
|
|
|
|
|
"successful": 1,
|
|
|
|
|
"skipped": 0,
|
|
|
|
|
"failed": 0
|
|
|
|
|
},
|
|
|
|
|
"hits": {
|
|
|
|
|
"total": {
|
|
|
|
|
"value": 1,
|
|
|
|
|
"relation": "eq"
|
2020-05-07 11:00:03 -04:00
|
|
|
|
},
|
2020-06-04 10:02:39 -04:00
|
|
|
|
"max_score": 1.3862942,
|
|
|
|
|
"hits": [
|
|
|
|
|
{
|
2020-07-21 13:25:53 -04:00
|
|
|
|
"_index": "my-index-000001",
|
2020-06-04 10:02:39 -04:00
|
|
|
|
"_type" : "_doc",
|
|
|
|
|
"_id": "0",
|
|
|
|
|
"_score": 1.3862942,
|
|
|
|
|
"_source": {
|
2020-07-21 13:25:53 -04:00
|
|
|
|
"@timestamp": "2099-11-15T14:12:12",
|
|
|
|
|
"http": {
|
|
|
|
|
"request": {
|
|
|
|
|
"method": "get"
|
|
|
|
|
},
|
|
|
|
|
"response": {
|
|
|
|
|
"status_code": 200,
|
|
|
|
|
"bytes": 1070000
|
|
|
|
|
},
|
|
|
|
|
"version": "1.1"
|
|
|
|
|
},
|
|
|
|
|
"source": {
|
|
|
|
|
"ip": "127.0.0.1"
|
|
|
|
|
},
|
|
|
|
|
"message": "GET /search HTTP/1.1 200 1070000",
|
|
|
|
|
"user": {
|
|
|
|
|
"id": "kimchy"
|
|
|
|
|
}
|
2020-06-04 10:02:39 -04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
2020-05-07 11:00:03 -04:00
|
|
|
|
}
|
2020-07-21 13:25:53 -04:00
|
|
|
|
----
|
|
|
|
|
// TESTRESPONSE[s/"took": 5/"took": $body.took/]
|