Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Картирование ›Типы данных полей

Тип поля Object

JSON-документы по своей природе иерархические: документ может содержать вложенные объекты, которые, в свою очередь, могут содержать вложенные объекты:

PUT my-index-000001/_doc/1
{ 
  "region": "US",
  "manager": { 
    "age":     30,
    "name": { 
      "first": "John",
      "last":  "Smith"
    }
  }
}

Внешний документ также является JSON-объектом.

Он содержит вложенный объект, называемый manager.

Который, в свою очередь, содержит вложенный объект, называемый name.

Внутренне этот документ индексируется как простой, плоский список пар ключ-значение, примерно так:

{
  "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" }
            }
          }
        }
      }
    }
  }
}

Свойства в определении сопоставления верхнего уровня.

Поле manager является внутренним полем типа object.

Поле manager.name является внутренним полем типа object внутри поля manager.

Вам не нужно явно задавать значение поля type как object, так как это значение по умолчанию.

Параметры для полей object

Следующие параметры принимаются полями типа object:

dynamic

Разрешать ли динамическое добавление новых properties в существующий объект. Принимает значения true (по умолчанию), runtime, false и strict.

enabled

Нужно ли парсить и индексировать JSON-значение для поля объекта (true, по умолчанию) или полностью игнорировать его (false).

properties

Поля внутри объекта, которые могут быть любого типа данных, включая object. К существующему объекту можно добавить новые свойства.

Если вам нужно индексировать массивы объектов вместо отдельных объектов, сначала прочтите 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API