Учебник по шаблонам Elasticsearch

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

Elasticsearch

Что мы делаем?

Мы хотим создать шаблон того, как должен выглядеть целевой индекс. Он должен состоять из 1 основного и 2 копийных шардов, и мы хотим обновить маппинг, чтобы можно было использовать текстовые поля и поля строк ключевых слов.

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

Строковые поля

В наших маппингах мы будем использовать следующие строковые поля, которые будут включены в наши шаблоны:

Text

Поле для индексации полнотекстовых значений, таких как тело письма или описание товара. Перед индексацией эти поля анализируются, т.е. проходят через анализатор, преобразующий строку в список отдельных терминов. Процесс анализа позволяет Elasticsearch осуществлять поиск отдельных слов в каждом полнотекстовом поле

Keyword

Поле для индексирования структурированного содержимого, такого как адреса электронной почты, имена хостов, коды статуса, почтовые индексы или теги.

Они обычно используются для фильтрации, для сортировки и для агрегирования. Поиск по ключевым словам возможен только по их точному значению.

Замечание по поводу шаблонов:

Следует иметь в виду несколько моментов:

  1. Шаблоны ссылаются при создании индекса и не влияют на существующие индексы
  2. При обновлении шаблона необходимо указывать точный шаблон, полезная нагрузка перезаписывает весь шаблон

Просмотр текущих шаблонов в кластере:

Создайте шаблон foobar_docs, который будет соответствовать всем индексам, соответствующим foo-* и bar-*, которые унаследуют настройки индексов 1 основного шарда и 2 реплицированных шардов, а также примените шаблон маппинга, показанный ниже:

Просмотр шаблона из api:

Создайте индекс, который будет соответствовать определению шаблонов:

Убедитесь, что индекс создан:

Мы также можем проинспектировать шаблон, как показано ниже:

Добавьте документ в индекс:

Запустите поиск по индексу elasticsearch для просмотра данных:

Создайте другой документ:

Как вы уже догадались, выполнение другого поиска в elasticsearch показывает нам оба документа:

Запустим поисковый запрос на поиск любых документов, в которых встречаются люди с возрастом от 30 до 40 лет:

Поиск людей с возрастом от 32 до 40 лет:

Допустим, мы хотим обновить наш шаблон с настройками refresh_interval, primary шардов - 2, реплик - 1:

Просмотрите шаблон, как видите, целевой шаблон будет выглядеть точно так же, как тело данных, которое мы размещаем в шаблоне api:

Просмотрите наш текущий индекс, как вы видите, индекс не затронут изменением шаблона, так как только новые индексы получат обновление шаблона:

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

Просмотрите индексы elasticsearch, чтобы проверить их поведение:

Удалите индексы:

Удалить шаблоны:

Убедитесь, что шаблоны исчезли:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий