Фильтр токенов Limit token count
Ограничивает количество выходных токенов. Данный limit фильтр обычно используется для ограничения размера значений полей документов на основе количества токенов.
По умолчанию limit фильтр сохраняет только первый токен в потоке. Например, фильтр может изменить поток токенов [ one, two, three ] на [ one ].
Этот фильтр использует LimitTokenCountFilter из Lucene.
If you want to limit the size of field values based on _character length_, use the <<ignore-above,`ignore_above`>> mapping parameter.
Настраиваемые параметры
-
max_token_count - (Необязательно, целое число) Максимальное количество токенов для сохранения. После достижения этого предела любые оставшиеся токены исключаются из вывода. По умолчанию значение
1. -
consume_all_tokens - (Необязательно, логическое значение) Если
true,limitфильтр исчерпывает поток токенов, даже если пределmax_token_countуже достигнут. По умолчанию значениеfalse.
Пример
Следующий запрос API анализа использует limit фильтр для сохранения только первых двух токенов в quick fox jumps over lazy dog:
GET _analyze
{
"tokenizer": "standard",
"filter": [
{
"type": "limit",
"max_token_count": 2
}
],
"text": "quick fox jumps over lazy dog"
} Фильтр генерирует следующие токены:
[ quick, fox ]
Добавление в анализатор
Следующий запрос API создания индекса использует limit фильтр для настройки нового пользовательского анализатора.
PUT limit_example
{
"settings": {
"analysis": {
"analyzer": {
"standard_one_token_limit": {
"tokenizer": "standard",
"filter": [ "limit" ]
}
}
}
}
} Настройка
Для настройки limit фильтра, дублируйте его, чтобы создать основу для нового пользовательского фильтра токенов. Вы можете изменить фильтр, используя его настраиваемые параметры.
Например, следующий запрос создаёт пользовательский limit фильтр, который сохраняет только первые пять токенов в потоке:
PUT custom_limit_example
{
"settings": {
"analysis": {
"analyzer": {
"whitespace_five_token_limit": {
"tokenizer": "whitespace",
"filter": [ "five_token_limit" ]
}
},
"filter": {
"five_token_limit": {
"type": "limit",
"max_token_count": 5
}
}
}
}
}
© 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-limit-token-count-tokenfilter.html