Справочник токенизаторов
Токенизатор получает поток символов, разбивает его на отдельные токены (обычно отдельные слова) и выводит поток токенов. Например, токенизатор whitespace разбивает текст на токены всякий раз, когда встречает пробелы. Он преобразует текст "Quick brown fox!" в термины [Quick, brown, fox!].
Токенизатор также отвечает за запись следующего:
- Порядок или позиция каждого термина (используется для запросов по фразам и близости слов)
- Начальные и конечные смещения символов исходного слова, которое представляет термин (используется для выделения фрагментов поиска).
- Тип токена, классификация каждого созданного термина, например,
<ALPHANUM>,<HANGUL>или<NUM>. Более простые анализаторы генерируют только тип токенаword.
Elasticsearch имеет ряд встроенных токенизаторов, которые можно использовать для создания настраиваемых анализаторов.
Токенизаторы, ориентированные на слова
Следующие токенизаторы обычно используются для разбиения полного текста на отдельные слова:
- Стандартный токенизатор
- Токенизатор
standardделит текст на термины на границах слов, как определено алгоритмом Unicode Text Segmentation. Он удаляет большинство знаков препинания. Это лучший выбор для большинства языков. - Токенизатор по буквам
- Токенизатор
letterразбивает текст на термины всякий раз, когда встречает символ, который не является буквой. - Токенизатор с нижним регистром
- Токенизатор
lowercase, как и токенизаторletter, разбивает текст на термины всякий раз, когда встречает символ, который не является буквой, но также переводит все термины в нижний регистр. - Токенизатор по пробелам
- Токенизатор
whitespaceразбивает текст на термины всякий раз, когда встречается любой пробельный символ. - Токенизатор UAX URL/email
- Токенизатор
uax_url_emailпохож на токенизаторstandard, за исключением того, что он распознаёт URL-адреса и адреса электронной почты как отдельные токены. - Классический токенизатор
- Токенизатор
classic- это грамматически основанный токенизатор для английского языка. - Токенизатор тайского языка
- Токенизатор
thaiразбивает текст на тайском языке на слова.
Токенизаторы частичных слов
Эти токенизаторы разбивают текст или слова на небольшие фрагменты для частичного совпадения слов:
- N-грамный токенизатор
- Токенизатор
ngramможет разбивать текст на слова, когда встречает любой из указанных символов (например, пробелы или знаки препинания), а затем возвращает n-граммы каждого слова: скользящее окно из непрерывных букв, например,quick→[qu, ui, ic, ck]. - Токенизатор пограничных n-грамм
- Токенизатор
edge_ngramможет разбивать текст на слова, когда встречает любой из указанных символов (например, пробелы или знаки препинания), а затем возвращает n-граммы каждого слова, привязанные к началу слова, например,quick→[q, qu, qui, quic, quick].
Токенизаторы структурированного текста
Следующие токенизаторы обычно используются со структурированным текстом, таким как идентификаторы, адреса электронной почты, почтовые индексы и пути, а не с полным текстом:
- Токенизатор ключевых слов
- Токенизатор
keyword— это «пустой» токенизатор, который принимает любой вводимый текст и выводит точно такой же текст как один термин. Его можно комбинировать с фильтрами токенов, например, сlowercase, для нормализации анализируемых терминов. - Шаблонный токенизатор
- Токенизатор
patternиспользует регулярное выражение, чтобы либо разбивать текст на термины всякий раз, когда он находит разделитель слов, либо для захвата совпавшего текста как терминов. - Простой шаблонный токенизатор
- Токенизатор
simple_patternиспользует регулярное выражение для захвата совпавшего текста в качестве терминов. Он использует ограниченный подмножество функций регулярных выражений и, как правило, быстрее, чем токенизаторpattern. - Токенизатор группы символов
- Токенизатор
char_groupнастраивается через наборы символов для разбиения, что обычно менее затратно по сравнению с выполнением регулярных выражений. - Токенизатор простого разбиения по шаблону
- Токенизатор
simple_pattern_splitиспользует то же ограниченное подмножество регулярных выражений, что и токенизаторsimple_pattern, но разбивает входные данные по совпадениям, а не возвращает совпадения как термины. - Токенизатор иерархии путей
- Токенизатор
path_hierarchyпринимает иерархическое значение, например, путь в файловой системе, разбивает его по разделителю пути и генерирует термин для каждого компонента в дереве, например,/foo/bar/baz→[/foo, /foo/bar, /foo/bar/baz ].
© 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-tokenizers.html