Elasticsearch: создать псевдоним для шаблона, удовлетворяющего определенному условию - PullRequest
2 голосов
/ 07 июня 2019

Можно ли определить разные псевдонимы при определении шаблона индекса.Различные псевдонимы будут ссылаться на имена индексов, которые соответствуют определенным критериям.

Пример:

{
   "index_patterns":[
      "*employee_records*"
   ],
   "settings":{
      "number_of_shards":3
   },
   "mappings":{
      "_doc":{
         "dynamic_templates":[
            // Dynamic Mapping
         ]
      }
   },
   "aliases":{
      "employee_records":{}
   }
}

Предположим, мы создаем несколько индексов, например

  • science_dept_employee_records_2015
  • science_dept_employee_records_2016
  • maths_dept_employee_records_2015
  • maths_dept_employee_records_2016

На момент определения шаблона индекса ни один из этих индексов не существовал.Отображение останется прежним.Я хотел бы определить два псевдонима для вышеописанного сценария science_dept_employee_records & maths_dept_employee_records.

Один из способов, который я могу подумать, состоит в том, чтобы продублировать шаблон индекса так, чтобы был псевдоним для

 "index_patterns":[
      "maths_dept_employee_records*"
 ]

и другой псевдоним для

 "index_patterns":[
      "science_dept_employee_records*"
 ]

Однако это приведет к появлению большого количества дубликатов в нескольких шаблонах.Есть ли более краткий способ добиться этого?

1 Ответ

3 голосов
/ 07 июня 2019

Одним из способов достижения этого является использование нескольких шаблонов, соответствующих с порядком, как показано ниже.

Один шаблон определяет все сопоставления и настройки и имеет самый низкий порядок (применяется первым):

{
   "index_patterns":[
      "*employee_records*"
   ],
   "order": 1,
   "settings":{
      "number_of_shards":3
   },
   "mappings":{
      "_doc":{
         "dynamic_templates":[
            // Dynamic Mapping
         ]
      }
   }
}

Другой шаблон определяет псевдоним для maths_dept_employee индексов с более высоким порядком и применяется следующим образом:

{
   "index_patterns":[
      "maths_dept_employee_records*"
   ],
   "order": 2,
   "aliases":{
      "maths_dept_employee_records":{}
   }
}

То же самое для science_dept_employee индексов:

{
   "index_patterns":[
      "science_dept_employee_records*"
   ],
   "order": 2,
   "aliases":{
      "science_dept_employee_records":{}
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...