Фильтр токенов Multiplexer
Фильтр токенов типа multiplexer генерирует несколько токенов в одной позиции, при этом каждая версия токена проходит через различные фильтры. Идентичные выходные токены в одной позиции будут удалены.
Если входной поток токенов содержит дублированные токены, они также будут удалены фильтром multiplexer.
Параметры
| filters | список фильтров токенов, применяемых к входным токенам. Это могут быть любые фильтры токенов, определённые в других местах в отображениях индекса. Фильтры могут быть объединены с помощью разделителя запятых. Например, |
Shingle или фильтры многословных синонимов не будут работать должным образом, если они объявлены в массиве filters, так как они выполняют внутренний предварительный просмотр, который не поддерживается фильтром multiplexer.
- preserve_original
- если
true(по умолчанию), то выводится оригинальный токен помимо отфильтрованных токенов
Пример настроек
Можно настроить это следующим образом:
PUT /multiplexer_example
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [ "my_multiplexer" ]
}
},
"filter": {
"my_multiplexer": {
"type": "multiplexer",
"filters": [ "lowercase", "lowercase, porter_stem" ]
}
}
}
}
} И протестировать так:
POST /multiplexer_example/_analyze
{
"analyzer" : "my_analyzer",
"text" : "Going HOME"
} И получить ответ:
{
"tokens": [
{
"token": "Going",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "going",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "go",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "HOME",
"start_offset": 6,
"end_offset": 10,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "home",
"start_offset": 6,
"end_offset": 10,
"type": "<ALPHANUM>",
"position": 1
}
]
} | Стеммер также сгенерировал токен |
Фильтры синонимов и synonym_graph используют предшествующую цепочку анализа для разбора и анализа своих списков синонимов и выдадут исключение, если эта цепочка содержит фильтры токенов, генерирующие несколько токенов в одной позиции. Если вы хотите применить синонимы к потоку токенов, содержащему multiplexer, добавьте фильтр синонимов в каждый соответствующий список фильтров multiplexer, а не помещайте его после multiplexer в основное определение цепочки токенов.
© 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-multiplexer-tokenfilter.html