На мой взгляд, лучший способ достичь этого - использовать index templates. Шаблоны индексов позволяют хранить спецификацию вашего индекса, включая настройки (следовательно, анализаторы) и сопоставления. Затем всякий раз, когда вы создаете новый индекс, соответствующий вашему шаблону, ES создаст индекс для вас, используя настройки и сопоставления, присутствующие в шаблоне.
Итак, сначала создайте шаблон индекса с именем index_template
с шаблоном шаблона myindex-*
:
PUT /_template/index_template
{
"template": "myindex-*",
"settings": {
... your settings ...
},
"mappings": {
"type1": {
"properties": {
... your mapping ...
}
}
}
}
Что будет дальше, что всякий раз, когда вы хотите индексировать новый документ в любой индекс, название которого соответствует myindex-*
, ES будет используйте этот шаблон (+ настройки и сопоставления) для создания нового индекса.
Так скажите, что ваш текущий индекс называется myindex-1
, и вы хотите переиндексировать его в новый индекс, называемый myindex-2
. Вы хотите отправить запрос переиндексации как этот
POST /_reindex
{
"source": {
"index": "myindex-1"
},
"dest": {
"index": "myindex-2"
}
}
myindex-2
еще не существует, но он будет создан в процессе, используя настройки и отображения index_template
, так как имя myindex-2
соответствует myindex-*
шаблону.
Простой как это.
Лучший способ достичь этого - использовать [шаблоны индексов] (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html). Вы пробовали их? – Val
Я попробую - спасибо. –