Шаблоны индексов
В данном разделе описываются шаблоны индексов, которые можно комбинировать, представленные в Elasticsearch 7.8. Сведения о предыдущих шаблонах индексов см. в документации по старым шаблонам.
Шаблон индекса — это способ указать Elasticsearch, как настроить индекс при его создании. Для потоков данных шаблон индекса настраивает базовые индексы потока при их создании. Шаблоны настраиваются до создания индекса. При создании индекса — вручную или посредством индексирования документа — настройки шаблона используются в качестве основы для создания индекса.
Существует два типа шаблонов: шаблоны индексов и шаблоны компонентов. Шаблоны компонентов — это переиспользуемые строительные блоки, которые настраивают отображения, настройки и алиасы. Хотя вы можете использовать шаблоны компонентов для создания шаблонов индексов, они не применяются непосредственно к набору индексов. Шаблоны индексов могут содержать набор шаблонов компонентов, а также напрямую задавать настройки, отображения и алиасы.
Для шаблонов индексов применяются следующие условия:
- Составные шаблоны имеют приоритет над старыми шаблонами. Если заданному индексу не соответствует ни один составной шаблон, может быть применён старый шаблон.
- Если индекс создаётся с явными настройками и также соответствует шаблону индекса, настройки из запроса создания индекса имеют приоритет над настройками, указанными в шаблоне индекса и его шаблонах компонентов.
- Настройки, указанные в самом шаблоне индекса, имеют приоритет над настройками в его шаблонах компонентов.
- Если новый поток данных или индекс соответствует нескольким шаблонам индексов, используется шаблон индекса с наивысшим приоритетом.
Создание шаблона индекса
Используйте шаблоны индексов и шаблоны компонентов, чтобы создавать и обновлять шаблоны индексов. Вы также можете управлять шаблонами индексов из Stack Management в Kibana.
Следующие запросы создают два шаблона компонентов.
PUT _component_template/component_template1
{
"template": {
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
}
}
}
}
}
PUT _component_template/runtime_component_template
{
"template": {
"mappings": {
"runtime": {
"day_of_week": {
"type": "keyword",
"script": {
"source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))"
}
}
}
}
}
} | Этот шаблон компонента добавляет динамическое поле с именем |
Следующий запрос создаёт шаблон индекса, составленный из этих шаблонов компонентов.
PUT _index_template/template_1
{
"index_patterns": ["te*", "bar*"],
"template": {
"settings": {
"number_of_shards": 1
},
"mappings": {
"_source": {
"enabled": true
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z yyyy"
}
}
},
"aliases": {
"mydata": { }
}
},
"priority": 500,
"composed_of": ["component_template1", "runtime_component_template"],
"version": 3,
"_meta": {
"description": "my custom"
}
}
© 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/index-templates.html