Spec-Zone.ru › Elasticsearch 7
›Руководство по Elasticsearch [7.17] ›Анализ текста ›Справочник по фильтрам токенов

Фильтр токенов Stop

Удаляет стоп-слова из потока токенов.

Если не настроен, по умолчанию фильтр удаляет следующие английские стоп-слова:

a, an, and, are, as, at, be, but, by, for, if, in, into, is, it, no, not, of, on, or, such, that, the, their, then, there, these, they, this, to, was, will, with

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

Фильтр stop использует StopFilter из Lucene.

Пример

Следующий запрос API анализа использует фильтр stop для удаления стоп-слов a и the из a quick fox jumps over the lazy dog:

GET /_analyze
{
  "tokenizer": "standard",
  "filter": [ "stop" ],
  "text": "a quick fox jumps over the lazy dog"
}

Фильтр генерирует следующие токены:

[ quick, fox, jumps, over, lazy, dog ]

Добавление в анализатор

Следующий запрос API создания индекса использует фильтр stop для настройки нового пользовательского анализатора.

PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "whitespace",
          "filter": [ "stop" ]
        }
      }
    }
  }
}

Настраиваемые параметры

stopwords

(Необязательно, строка или массив строк) Значение языка, например _arabic_ или _thai_. По умолчанию _english_.

Каждое значение языка соответствует предопределённому списку стоп-слов в Lucene. См. Стоп-слова по языку для поддержки значений языка и их стоп-слов.

Также принимает массив стоп-слов.

Для пустого списка стоп-слов используйте _none_.

stopwords_path

(Необязательно, строка) Путь к файлу, содержащему список стоп-слов для удаления.

Этот путь должен быть абсолютным или относительным к расположению config, а файл должен быть закодирован в UTF-8. Каждое стоп-слово в файле должно быть разделено новой строкой.

ignore_case
(Необязательно, булево) Если true, соответствие стоп-слов не учитывает регистр. Например, если true, стоп-слово the соответствует и удаляет The, THE или the. По умолчанию false.
remove_trailing

(Необязательно, булево) Если true, последний токен потока удаляется, если он является стоп-словом. По умолчанию true.

Этот параметр должен быть false при использовании фильтра с предлагателем завершения. Это гарантирует, что запрос, например, green a, соответствует и предлагает green apple, сохраняя при этом удаление других стоп-слов.

Настройка

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

Например, следующий запрос создаёт пользовательский регистронезависимый фильтр stop, который удаляет стоп-слова из списка _english_:

PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "tokenizer": "whitespace",
          "filter": [ "my_custom_stop_words_filter" ]
        }
      },
      "filter": {
        "my_custom_stop_words_filter": {
          "type": "stop",
          "ignore_case": true
        }
      }
    }
  }
}

Вы также можете указать свой собственный список стоп-слов. Например, следующий запрос создаёт пользовательский регистрозависимый фильтр stop, который удаляет только стоп-слова and, is и the:

PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "tokenizer": "whitespace",
          "filter": [ "my_custom_stop_words_filter" ]
        }
      },
      "filter": {
        "my_custom_stop_words_filter": {
          "type": "stop",
          "ignore_case": true,
          "stopwords": [ "and", "is", "the" ]
        }
      }
    }
  }
}

Стоп-слова по языкам

Следующий список содержит поддерживаемые значения языка для параметра stopwords и ссылку на их предопределенные стоп-слова в Lucene.

_arabic_
Арабские стоп-слова
_armenian_
Армянские стоп-слова
_basque_
Баскские стоп-слова
_bengali_
Бенгальские стоп-слова
_brazilian_ (Brazilian Portuguese)
Бразильские португальские стоп-слова
_bulgarian_
Болгарские стоп-слова
_catalan_
Каталанские стоп-слова
_cjk_ (Chinese, Japanese, and Korean)
CJK стоп-слова
_czech_
Чешские стоп-слова
_danish_
Датские стоп-слова
_dutch_
Голландские стоп-слова
_english_
Английские стоп-слова
_estonian_
Эстонские стоп-слова
_finnish_
Финские стоп-слова
_french_
Французские стоп-слова
_galician_
Галисийские стоп-слова
_german_
Немецкие стоп-слова
_greek_
Греческие стоп-слова
_hindi_
Хинди стоп-слова
_hungarian_
Венгерские стоп-слова
_indonesian_
Индонезийские стоп-слова
_irish_
Ирландские стоп-слова
_italian_
Итальянские стоп-слова
_latvian_
Латышские стоп-слова
_lithuanian_
Литовские стоп-слова
_norwegian_
Норвежские стоп-слова
_persian_
Персидские стоп-слова
_portuguese_
Португальские стоп-слова
_romanian_
Румынские стоп-слова
_russian_
Русские стоп-слова
_sorani_
Сорани стоп-слова
_spanish_
Испанские стоп-слова
_swedish_
Шведские стоп-слова
_thai_
Тайские стоп-слова
_turkish_
Стоп-слова турецкого языка

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analysis-stop-tokenfilter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API