Фильтр токенов 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