В большем случае у большинства index
в вашем кластере одни и те же настройки (количество реплик, количество shards и т.д). И желание не настраивать каждый index
отдельно является естественным, зачем вам тратить драгоценное время на такую ерунду. И такую процедуру в Elasticsearch можно автоматизировать. Для этого применяется шаблоны (Templates).
Шаблоны (Templates) позволяют вам устанавливать значения, которые будут автоматически применяться к вновь созданным index
, что полезно, когда вам нужно создать несколько индексов
с одинаковыми настройками и сопоставлениями.
Создание шаблона (template)
Для создания или удаления шаблонов (templates) используется _template.
Пример создания шаблона:
PUT _template/my-index-template
{
"index_patterns": "my-*",
"order": 1,
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
}
}
}
}
- index_patterns - к какому index применять шаблон (может принимать pattern)
- order - приоритет шаблона, чем выше, тем приоритетнее
- settings - собственно сами настройки index
- my-index-template - название шаблона, может быть любым
Множественные шаблоны
Внимательные читатели уже, наверное, догадались о чём пойдёт речь. Бывает необходимость применить множественные шаблоны, т.е к одному index
применить несколько шаблонов.
На то какой именно из шаблонов примениться к index
влияет order, о котором я уже упомянул выше. По умолчанию он выставляется в значение 1. Если у вас несколько шаблонов с разным order то примениться тот шаблон, у которого order выше.
PUT _template/my-index-template
{
"index_patterns": "my-*",
"order": 5,
"settings": {
"number_of_shards": 10,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
}
}
}
}
PUT my-index-v1
GET my-index-v1
{
"my-index-v1": {
..........
"properties": {
"@timestamp": {
"type": "date"
}
...............
"number_of_shards": 10,
"number_of_replicas": 1
......................
Комментарии