mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 04:58:50 +00:00
1764ec56b3
This change replaces the fields parameter with stored_fields when it makes sense. This is dictated by the renaming we made in #18943 for the search API. The following list of endpoint has been changed to use `stored_fields` instead of `fields`: * get * mget * explain The documentation and the rest API spec has been updated to cope with the changes for the following APIs: * delete_by_query * get * mget * explain The `fields` parameter has been deprecated for the following APIs (it is replaced by _source filtering): * update: the fields are extracted from the _source directly. * bulk: the fields parameter is used but fields are extracted from the source directly so it is allowed to have non-stored fields. Some APIs still have the `fields` parameter for various reasons: * cat.fielddata: the fields paramaters relates to the fielddata fields that should be printed. * indices.clear_cache: used to indicate which fielddata fields should be cleared. * indices.get_field_mapping: used to filter fields in the mapping. * indices.stats: get stats on fields (stored or not stored). * termvectors: fields are retrieved from the stored fields if possible and extracted from the _source otherwise. * mtermvectors: * nodes.stats: the fields parameter is used to concatenate completion_fields and fielddata_fields so it's not related to stored_fields at all. Fixes #20155
71 lines
2.1 KiB
Plaintext
71 lines
2.1 KiB
Plaintext
[[search-request-stored-fields]]
|
|
=== Fields
|
|
|
|
WARNING: The `stored_fields` parameter is about fields that are explicitly marked as
|
|
stored in the mapping, which is off by default and generally not recommended.
|
|
Use <<search-request-source-filtering,source filtering>> instead to select
|
|
subsets of the original source document to be returned.
|
|
|
|
Allows to selectively load specific stored fields for each document represented
|
|
by a search hit.
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
GET /_search
|
|
{
|
|
"stored_fields" : ["user", "postDate"],
|
|
"query" : {
|
|
"term" : { "user" : "kimchy" }
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
|
|
`*` can be used to load all stored fields from the document.
|
|
|
|
An empty array will cause only the `_id` and `_type` for each hit to be
|
|
returned, for example:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
GET /_search
|
|
{
|
|
"stored_fields" : [],
|
|
"query" : {
|
|
"term" : { "user" : "kimchy" }
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
|
|
If the requested fields are not stored (`store` mapping set to `false`), they will be ignored.
|
|
|
|
Field values fetched from the document it self are always returned as an array. Metadata fields like `_routing` and
|
|
`_parent` fields are never returned as an array.
|
|
|
|
Also only leaf fields can be returned via the `field` option. So object fields can't be returned and such requests
|
|
will fail.
|
|
|
|
Script fields can also be automatically detected and used as fields, so
|
|
things like `_source.obj1.field1` can be used, though not recommended, as
|
|
`obj1.field1` will work as well.
|
|
|
|
==== Disable stored fields entirely
|
|
|
|
To disable the stored fields (and metadata fields) entirely use: `\_none_`:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
GET /_search
|
|
{
|
|
"stored_fields": "_none_",
|
|
"query" : {
|
|
"term" : { "user" : "kimchy" }
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
|
|
NOTE: <<search-request-source-filtering,`_source`>> and <<search-request-version, `version`>> parameters cannot be activated if `_none_` is used.
|
|
|