Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›Отображение ›Параметры отображения

dynamic

При индексировании документа, содержащего новое поле, Elasticsearch динамически добавляет поле в документ или во внутренние объекты документа. Следующий документ добавляет строковое поле username, объектное поле name и два строковых поля в объекте name:

PUT my-index-000001/_doc/1
{
  "username": "johnsmith",
  "name": { 
    "first": "John",
    "last": "Smith"
  }
}

GET my-index-000001/_mapping 

Обращайтесь к полям внутри объекта name как к name.first и name.last.

Проверьте отображение, чтобы увидеть изменения.

Следующий документ добавляет два строковых поля: email и name.middle:

PUT my-index-000001/_doc/2
{
  "username": "marywhite",
  "email": "mary@white.com",
  "name": {
    "first": "Mary",
    "middle": "Alice",
    "last": "White"
  }
}

GET my-index-000001/_mapping

Установка dynamic для вложенных объектов

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

Однако объект user.social_networks включает динамическое отображение, поэтому вы можете добавить поля в этот вложенный объект.

PUT my-index-000001
{
  "mappings": {
    "dynamic": false, 
    "properties": {
      "user": { 
        "properties": {
          "name": {
            "type": "text"
          },
          "social_networks": {
            "dynamic": true, 
            "properties": {}
          }
        }
      }
    }
  }
}

Отключает динамическое отображение на уровне типа.

Объект user наследует настройку на уровне типа.

Включает динамическое отображение для этого вложенного объекта.

Параметры для dynamic

Параметр dynamic управляет тем, добавляются ли новые поля динамически, и принимает следующие параметры:

true

Новые поля добавляются в отображение (по умолчанию).

runtime

Новые поля добавляются в отображение как поля runtime. Эти поля не индексируются и загружаются из _source во время запроса.

false

Новые поля игнорируются. Эти поля не будут индексироваться или использоваться для поиска, но по-прежнему будут отображаться в поле _source возвращаемых результатов. Эти поля не будут добавлены в отображение, и новые поля необходимо добавлять явно.

strict

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

© 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/dynamic.html

Spec-Zone.ru

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