Настройка анализаторов и фильтров маркеров Elasticsearch

Elasticsearch поставляется с рядом встроенных анализаторов и фильтров лексем, некоторые из которых можно настроить с помощью параметров. В следующем примере я настрою стандартный анализатор на удаление стоп-слов, что заставит его включить фильтр стоп-лексики.

Elasticsearch

Я создам новый индекс для этой цели и определю анализатор во время создания индекса. Мы сделаем это, добавив объект настроек.

Помимо английского языка, фильтр стоп-токенов поставляется с рядом других предопределенных языков.

Далее я хочу показать вам, как настроить фильтр лексем. Это делается путем добавления объекта фильтра в объект анализа. Синтаксис такой же, как и в анализаторах.

Выполнение приведенного выше запроса создаст индекс вместе с настроенной версией стандартного анализатора и фильтром токенов. Вы можете сделать то же самое для токенизаторов и фильтров символов, добавив ключ tokenizer и char_filter соответственно.

Теперь давайте проверим, что анализатор работает так, как мы ожидаем, используя API Analyze.

Результат

Как видно из результатов, стоп-слова действительно были отфильтрованы, так что все выглядит хорошо.

Давайте проверим, что фильтр лексем также работает, как задумано.

Результат

Как мы видим в результатах, слово "drinking" было стеммировано до "drink", поэтому фильтр лексем работает.

Вот так можно настроить встроенные анализаторы, фильтры лексем и многое другое.

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