Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›REST API ›API индексов

API создания или обновления шаблона индекса

Данная документация посвящена устаревшим шаблонам индексов, которые являются устаревшими и будут заменены составными шаблонами, представленными в Elasticsearch 7.8. Для получения информации о составных шаблонах см. Шаблоны индексов.

Создаёт или обновляет шаблон индекса.

PUT _template/template_1
{
  "index_patterns": ["te*", "bar*"],
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "_source": {
      "enabled": false
    },
    "properties": {
      "host_name": {
        "type": "keyword"
      },
      "created_at": {
        "type": "date",
        "format": "EEE MMM dd HH:mm:ss Z yyyy"
      }
    }
  }
}

Запрос

PUT /_template/<index-template>

Предварительные условия

  • Если функции безопасности Elasticsearch включены, необходимо иметь manage_index_templates или manage право доступа к кластеру для использования данного API.

Описание

Шаблоны индексов определяют настройки и сопоставления, которые можно автоматически применять при создании новых индексов. Elasticsearch применяет шаблоны к новым индексам на основе шаблона имени индекса, соответствующего имени индекса.

Составные шаблоны всегда имеют приоритет над устаревшими шаблонами. Если ни один составной шаблон не соответствует новому индексу, применяются соответствующие устаревшие шаблоны в соответствии с их порядком.

Шаблоны индексов применяются только во время создания индексов. Изменения в шаблонах индексов не влияют на существующие индексы. Параметры и сопоставления, указанные в запросах API создания индекса, переопределяют любые настройки или сопоставления, указанные в шаблоне индекса.

Комментарии в шаблонах индексов

Вы можете использовать комментарии блочного типа /* */ в стиле C в шаблонах индексов. Вы можете включать комментарии в любом месте тела запроса, кроме части перед открывающей фигурной скобкой.

Получение шаблонов

См. API получения шаблона индекса (устаревшая версия).

Параметры пути

<index-template>
(Обязательно, строка) Название шаблона индекса, который нужно создать.

Параметры запроса

create
(Необязательно, логическое значение) Если true, этот запрос не может заменить или обновить существующие шаблоны индексов. По умолчанию false.
order

(Необязательно, целое число) Порядок, в котором Elasticsearch применяет этот шаблон, если индекс соответствует нескольким шаблонам.

Шаблоны с меньшими значениями order объединяются первыми. Шаблоны с большими значениями order объединяются позже, переопределяя шаблоны с меньшими значениями.

master_timeout
(Необязательно, единицы времени) Период ожидания подключения к узлу master. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию 30s.

Тело запроса

index_patterns
(Обязательно, массив строк) Массив шаблонов с подстановкой, используемых для соответствия имени индексов при создании.
aliases

(Необязательно, объект объектов) Псевдонимы для индекса.

Свойства объектов aliases
<alias>

(Обязательно, объект) Ключ - имя псевдонима. Имена псевдонимов индексов поддерживают математику дат.

Тело объекта содержит параметры для псевдонима. Поддерживает пустой объект.

Свойства объектов <alias>
filter
(Необязательно, объект запроса) Запрос, используемый для ограничения документов, к которым может получить доступ псевдоним.
index_routing
(Необязательно, строка) Значение, используемое для маршрутизации операций индексирования на определенный фрагмент. При указании переопределяет значение routing для операций индексирования.
is_hidden
(Необязательно, логическое значение) Если true, псевдоним скрыт. По умолчанию false. Все индексы для псевдонима должны иметь одинаковое значение is_hidden.
is_write_index
(Необязательно, логическое значение) Если true, индекс является записывающим индексом для псевдонима. По умолчанию false.
routing
(Необязательно, строка) Значение, используемое для маршрутизации операций индексирования и поиска на определенный фрагмент.
search_routing
(Необязательно, строка) Значение, используемое для маршрутизации операций поиска на определенный фрагмент. При указании переопределяет значение routing для операций поиска.
mappings

(Необязательно, объект сопоставления) Сопоставление для полей в индексе. При указании это сопоставление может включать:

  • Имена полей
  • Типы данных полей
  • Параметры сопоставления

См. Сопоставление.

settings
(Необязательно, объект настроек индекса) Параметры конфигурации индекса. См. Настройки индекса.
version
(Необязательно, целое число) Номер версии, используемый для управления шаблонами индексов внешними средствами. Это число не генерируется автоматически Elasticsearch.

Примеры

Шаблон индекса с псевдонимами индексов

Вы можете включить псевдонимы индексов в шаблон индекса.

PUT _template/template_1
{
  "index_patterns" : ["te*"],
  "settings" : {
    "number_of_shards" : 1
  },
  "aliases" : {
    "alias1" : {},
    "alias2" : {
      "filter" : {
        "term" : {"user.id" : "kimchy" }
      },
      "routing" : "shard-1"
    },
    "{index}-alias" : {} 
  }
}

заполнитель {index} в имени псевдонима будет заменён фактическим именем индекса, к которому применяется шаблон при создании индекса.

Индексы, соответствующие нескольким шаблонам

Несколько шаблонов индексов могут потенциально соответствовать индексу, в этом случае настройки и сопоставления объединяются в окончательную конфигурацию индекса. Порядок объединения можно контролировать с помощью параметра order, при этом шаблоны с более низким порядком применяются первыми, а шаблоны с более высоким порядком переопределяют их. Например:

PUT /_template/template_1
{
  "index_patterns" : ["te*"],
  "order" : 0,
  "settings" : {
    "number_of_shards" : 1
  },
  "mappings" : {
    "_source" : { "enabled" : false }
  }
}

PUT /_template/template_2
{
  "index_patterns" : ["tes*"],
  "order" : 1,
  "settings" : {
    "number_of_shards" : 1
  },
  "mappings" : {
    "_source" : { "enabled" : true }
  }
}

Вышеуказанное действие отключит сохранение _source, но для индексов, начинающихся с tes*, _source по-прежнему будет включено. Обратите внимание, что для сопоставлений объединение выполняется «глубоко», что означает, что специфические сопоставления на основе объектов/свойств могут легко добавляться/переопределяться в шаблонах более высокого порядка, при этом шаблоны более низкого порядка предоставляют базу.

Несколько совпадающих шаблонов с одинаковым значением порядка приведут к непредсказуемому порядку слияния.

Версионирование шаблонов

Вы можете использовать параметр version, чтобы добавить необязательный номер версии к шаблону индекса. Внешние системы могут использовать эти номера версий для упрощения управления шаблонами.

Параметр version полностью необязателен и не генерируется автоматически Elasticsearch.

Для отмены version замените шаблон без указания номера версии.

PUT /_template/template_1
{
  "index_patterns" : ["my-index-*"],
  "order" : 0,
  "settings" : {
    "number_of_shards" : 1
  },
  "version": 123
}

Чтобы проверить version, можно использовать API получения шаблона индекса с параметром запроса filter_path для возвращения только номера версии:

GET /_template/template_1?filter_path=*.version

API возвращает следующий ответ:

{
  "template_1" : {
    "version" : 123
  }
}

© 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/indices-templates-v1.html

END_OF_DOCUMENT_MARKER

Spec-Zone.ru

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