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 в шаблонах индексов. Вы можете включать комментарии в любом месте тела запроса, кроме части перед открывающей фигурной скобкой.
Получение шаблонов
Параметры пути
-
<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" : {}
}
} | заполнитель |
Индексы, соответствующие нескольким шаблонам
Несколько шаблонов индексов могут потенциально соответствовать индексу, в этом случае настройки и сопоставления объединяются в окончательную конфигурацию индекса. Порядок объединения можно контролировать с помощью параметра 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