Фильтр токенов Length
Удаляет токены, длина которых короче или длиннее указанной длины в символах. Например, вы можете использовать фильтр length, чтобы исключить токены короче 2 символов и длиннее 5 символов.
Этот фильтр использует LengthFilter из Lucene.
Фильтр length удаляет целые токены. Если вы хотите укоротить токены до определённой длины, используйте фильтр truncate.
Пример
Следующий запрос API анализа использует фильтр length для удаления токенов, длина которых превышает 4 символа:
GET _analyze
{
"tokenizer": "whitespace",
"filter": [
{
"type": "length",
"min": 0,
"max": 4
}
],
"text": "the quick brown fox jumps over the lazy dog"
} Фильтр производит следующие токены:
[ the, fox, over, the, lazy, dog ]
Добавление в анализатор
Следующий запрос API создания индекса использует фильтр length для настройки нового пользовательского анализатора.
PUT length_example
{
"settings": {
"analysis": {
"analyzer": {
"standard_length": {
"tokenizer": "standard",
"filter": [ "length" ]
}
}
}
}
} Настраиваемые параметры
-
min - (Необязательно, целое число) Минимальная длина токена в символах. Токены короче этого значения исключаются из результата. По умолчанию
0. -
max - (Необязательно, целое число) Максимальная длина токена в символах. Токены длиннее этого значения исключаются из результата. По умолчанию
Integer.MAX_VALUE, что равно2^31-1или2147483647.
Настройка
Чтобы настроить фильтр length, дублируйте его, чтобы создать основу для нового пользовательского фильтра токенов. Вы можете изменить фильтр, используя его настраиваемые параметры.
Например, следующий запрос создаёт пользовательский фильтр length, который удаляет токены короче 2 символов и длиннее 10 символов:
PUT length_custom_example
{
"settings": {
"analysis": {
"analyzer": {
"whitespace_length_2_to_10_char": {
"tokenizer": "whitespace",
"filter": [ "length_2_to_10_char" ]
}
},
"filter": {
"length_2_to_10_char": {
"type": "length",
"min": 2,
"max": 10
}
}
}
}
}
© 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-length-tokenfilter.html