Тип поля Object
JSON-документы по своей природе иерархические: документ может содержать вложенные объекты, которые, в свою очередь, могут содержать вложенные объекты:
PUT my-index-000001/_doc/1
{
"region": "US",
"manager": {
"age": 30,
"name": {
"first": "John",
"last": "Smith"
}
}
} | Внешний документ также является JSON-объектом. | |
| Он содержит вложенный объект, называемый | |
| Который, в свою очередь, содержит вложенный объект, называемый |
Внутренне этот документ индексируется как простой, плоский список пар ключ-значение, примерно так:
{
"region": "US",
"manager.age": 30,
"manager.name.first": "John",
"manager.name.last": "Smith"
} Явное сопоставление для вышеуказанного документа может выглядеть следующим образом:
PUT my-index-000001
{
"mappings": {
"properties": {
"region": {
"type": "keyword"
},
"manager": {
"properties": {
"age": { "type": "integer" },
"name": {
"properties": {
"first": { "type": "text" },
"last": { "type": "text" }
}
}
}
}
}
}
} | Свойства в определении сопоставления верхнего уровня. | |
| Поле | |
| Поле |
Вам не нужно явно задавать значение поля type как object, так как это значение по умолчанию.
Параметры для полей object
Следующие параметры принимаются полями типа object:
| Разрешать ли динамическое добавление новых | |
| Нужно ли парсить и индексировать JSON-значение для поля объекта ( | |
| Поля внутри объекта, которые могут быть любого типа данных, включая |
Если вам нужно индексировать массивы объектов вместо отдельных объектов, сначала прочтите Nested.
© 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/object.html