store
По умолчанию значения полей индексируются для обеспечения возможности поиска, но не хранятся. Это означает, что поле можно использовать для запросов, но извлечь оригинальное значение поля нельзя.
Обычно это не имеет значения. Значение поля уже входит в состав _source поля, которое хранится по умолчанию. Если требуется получить значение только одного поля или нескольких полей, а не всего _source, можно использовать фильтрацию источника.
В определенных ситуациях может иметь смысл store поля. Например, если у вас есть документ с title, date и очень большим content полем, вы можете захотеть получить только title и date, не извлекая эти поля из большого _source поля:
PUT my-index-000001
{
"mappings": {
"properties": {
"title": {
"type": "text",
"store": true
},
"date": {
"type": "date",
"store": true
},
"content": {
"type": "text"
}
}
}
}
PUT my-index-000001/_doc/1
{
"title": "Some short title",
"date": "2015-01-01",
"content": "A very long content field..."
}
GET my-index-000001/_search
{
"stored_fields": [ "title", "date" ]
} | Поля | |
| Этот запрос извлечет значения полей |
Хранимые поля возвращаются в виде массивов
Для обеспечения согласованности, хранимые поля всегда возвращаются в виде массива, так как нет способа определить, было ли исходное значение поля одиночным значением, несколькими значениями или пустым массивом.
Если требуется исходное значение, необходимо извлечь его из поля _source.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping-store.html