-
Notifications
You must be signed in to change notification settings - Fork 24.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a reference on returning fields during a search. (#57500)
This PR adds a section to the new 'run a search' reference that explains the options for returning fields. Previously each option was only listed as a separate request parameter and it was hard to know what was available.
- Loading branch information
1 parent
1998fe5
commit 8ebeeda
Showing
2 changed files
with
33 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -289,3 +289,5 @@ GET /*/_search | |
==== | ||
|
||
include::request/from-size.asciidoc[] | ||
|
||
include::search-fields.asciidoc[] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
[discrete] | ||
[[search-fields]] | ||
=== Return fields in a search | ||
|
||
By default, each hit in the search response includes the document | ||
<<mapping-source-field,`_source`>>, which is the entire JSON object that was | ||
provided when indexing the document. If you only need certain fields in the | ||
search response, you can use | ||
<<request-body-search-source-filtering,source filtering>> to restrict what | ||
parts of the source are returned. | ||
|
||
Returning fields using only the document source has some limitations: | ||
|
||
* The `_source` field does not include <<multi-fields, multi-fields>> or | ||
<<alias, field aliases>>. Likewise, a field in the source does not contain | ||
values copied using the <<copy-to,`copy_to`>> mapping parameter. | ||
* Since the `_source` is stored as a single field in Lucene, the whole source | ||
object must be loaded and parsed, even if only a small number of fields are | ||
needed. | ||
|
||
{es} supports some alternative methods for returning fields that help avoid | ||
these downsides: | ||
|
||
* The <<request-body-search-docvalue-fields, `docvalue_fields`>> | ||
parameter allows for loading fields from their doc values. This can be a good | ||
choice when returning a fairly small number of fields that support doc values, | ||
such as keywords and dates. | ||
* It's also possible to store an individual field's values by using the | ||
<<mapping-store,`store`>> mapping option. You can use the | ||
<<request-body-search-stored-fields, `stored_fields`>> parameter to return | ||
these stored values in the search response. |