Фильтр токенов Truncate
Усекает токены, длина которых превышает заданный лимит символов. Этот лимит по умолчанию равен 10, но может быть настроен с помощью параметра length.
Например, вы можете использовать фильтр truncate для укорачивания всех токенов до 3 символов или меньше, изменив jumping fox на jum fox.
Этот фильтр использует TruncateTokenFilter из Lucene.
Пример
Следующий запрос API анализа использует фильтр truncate для укорачивания токенов, длина которых превышает 10 символов, в the quinquennial extravaganza carried on:
resp = client.indices.analyze(
tokenizer="whitespace",
filter=[
"truncate"
],
text="the quinquennial extravaganza carried on",
)
print(resp) response = client.indices.analyze(
body: {
tokenizer: 'whitespace',
filter: [
'truncate'
],
text: 'the quinquennial extravaganza carried on'
}
)
puts response const response = await client.indices.analyze({
tokenizer: "whitespace",
filter: ["truncate"],
text: "the quinquennial extravaganza carried on",
});
console.log(response); GET _analyze
{
"tokenizer" : "whitespace",
"filter" : ["truncate"],
"text" : "the quinquennial extravaganza carried on"
} Фильтр производит следующие токены:
[ the, quinquenni, extravagan, carried, on ]
Добавление в анализатор
Следующий запрос API создания индекса использует фильтр truncate для настройки нового пользовательского анализатора.
resp = client.indices.create(
index="custom_truncate_example",
settings={
"analysis": {
"analyzer": {
"standard_truncate": {
"tokenizer": "standard",
"filter": [
"truncate"
]
}
}
}
},
)
print(resp) response = client.indices.create(
index: 'custom_truncate_example',
body: {
settings: {
analysis: {
analyzer: {
standard_truncate: {
tokenizer: 'standard',
filter: [
'truncate'
]
}
}
}
}
}
)
puts response const response = await client.indices.create({
index: "custom_truncate_example",
settings: {
analysis: {
analyzer: {
standard_truncate: {
tokenizer: "standard",
filter: ["truncate"],
},
},
},
},
});
console.log(response); PUT custom_truncate_example
{
"settings" : {
"analysis" : {
"analyzer" : {
"standard_truncate" : {
"tokenizer" : "standard",
"filter" : ["truncate"]
}
}
}
}
} Настраиваемые параметры
-
length - (Необязательно, целое число) Лимит символов для каждого токена. Токены, превышающие этот лимит, усекаются. По умолчанию равен
10.
Настройка
Для настройки фильтра truncate, скопируйте его, чтобы создать основу для нового пользовательского фильтра токенов. Вы можете изменить фильтр, используя его настраиваемые параметры.
Например, следующий запрос создаёт пользовательский фильтр truncate, 5_char_trunc, который укорачивает токены до length в 5 символов или меньше:
resp = client.indices.create(
index="5_char_words_example",
settings={
"analysis": {
"analyzer": {
"lowercase_5_char": {
"tokenizer": "lowercase",
"filter": [
"5_char_trunc"
]
}
},
"filter": {
"5_char_trunc": {
"type": "truncate",
"length": 5
}
}
}
},
)
print(resp) response = client.indices.create(
index: '5_char_words_example',
body: {
settings: {
analysis: {
analyzer: {
"lowercase_5_char": {
tokenizer: 'lowercase',
filter: [
'5_char_trunc'
]
}
},
filter: {
"5_char_trunc": {
type: 'truncate',
length: 5
}
}
}
}
}
)
puts response const response = await client.indices.create({
index: "5_char_words_example",
settings: {
analysis: {
analyzer: {
lowercase_5_char: {
tokenizer: "lowercase",
filter: ["5_char_trunc"],
},
},
filter: {
"5_char_trunc": {
type: "truncate",
length: 5,
},
},
},
},
});
console.log(response); PUT 5_char_words_example
{
"settings": {
"analysis": {
"analyzer": {
"lowercase_5_char": {
"tokenizer": "lowercase",
"filter": [ "5_char_trunc" ]
}
},
"filter": {
"5_char_trunc": {
"type": "truncate",
"length": 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/8.17/analysis-truncate-tokenfilter.html