enabled
Elasticsearch пытается проиндексировать все поля, которые вы ему предоставляете, но иногда вы хотите просто сохранить поле без индексирования. Например, представьте, что вы используете Elasticsearch в качестве хранилища веб-сессий. Вы можете захотеть проиндексировать идентификатор сессии и время последнего обновления, но вам не нужно выполнять запросы или агрегации на самих данных сессии.
Настройка enabled, которая может быть применена только к определению отображения верхнего уровня и к полям типа object, заставляет Elasticsearch полностью пропустить обработку содержимого поля. JSON всё ещё можно извлечь из поля _source, но оно не будет доступно для поиска и не будет храниться каким-либо другим способом:
PUT my-index-000001
{
"mappings": {
"properties": {
"user_id": {
"type": "keyword"
},
"last_updated": {
"type": "date"
},
"session_data": {
"type": "object",
"enabled": false
}
}
}
}
PUT my-index-000001/_doc/session_1
{
"user_id": "kimchy",
"session_data": {
"arbitrary_object": {
"some_array": [ "foo", "bar", { "baz": 2 } ]
}
},
"last_updated": "2015-12-06T18:20:22"
}
PUT my-index-000001/_doc/session_2
{
"user_id": "jpountz",
"session_data": "none",
"last_updated": "2015-12-06T18:22:13"
} | Поле | |
| Любые произвольные данные могут быть переданы в поле | |
| Поле |
Вся схема может быть отключена, в этом случае документ хранится в поле _source, что означает, что его можно извлечь, но ни одно из его содержимого не будет проиндексировано каким-либо образом:
PUT my-index-000001
{
"mappings": {
"enabled": false
}
}
PUT my-index-000001/_doc/session_1
{
"user_id": "kimchy",
"session_data": {
"arbitrary_object": {
"some_array": [ "foo", "bar", { "baz": 2 } ]
}
},
"last_updated": "2015-12-06T18:20:22"
}
GET my-index-000001/_doc/session_1
GET my-index-000001/_mapping | Вся схема отключена. | |
| Документ можно извлечь. | |
| Проверка схемы показывает, что поля не были добавлены. |
Настройка enabled для существующих полей и определения схемы верхнего уровня не может быть обновлена.
Обратите внимание, что поскольку Elasticsearch полностью пропускает обработку содержимого поля, возможно добавить не-объектные данные в отключенное поле:
PUT my-index-000001
{
"mappings": {
"properties": {
"session_data": {
"type": "object",
"enabled": false
}
}
}
}
PUT my-index-000001/_doc/session_1
{
"session_data": "foo bar"
} | Документ добавляется успешно, даже если |
© 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/enabled.html