Обзор анализа текста
Анализ текста позволяет Elasticsearch выполнять полнотекстовый поиск, где результаты поиска возвращают все релевантные результаты, а не только точные совпадения.
Если вы ищете Quick fox jumps, вы, вероятно, хотите документ, который содержит A quick brown fox jumps over the lazy dog, и вам могут потребоваться также документы, содержащие связанные слова, такие как fast fox или foxes leap.
Токенизация
Анализ позволяет выполнить полнотекстовый поиск с помощью токенизации: разбиение текста на более мелкие части, называемые токенами. В большинстве случаев эти токены — отдельные слова.
Если вы индексируете фразу the quick brown fox jumps как одну строку, а пользователь ищет quick fox, это не будет считаться совпадением. Однако, если вы разделите фразу на токены и индексируете каждое слово по отдельности, термины в строке запроса могут быть проиндексированы индивидуально. Это означает, что они могут соответствовать поискам quick fox, fox brown или другим вариациям.
Нормализация
Токенизация позволяет выполнять поиск по отдельным терминам, но каждый токен по-прежнему сравнивается буквально. Это означает:
- Поиск
Quickне будет соответствоватьquick, даже если вам, вероятно, необходимо, чтобы любой термин соответствовал другому - Хотя
foxиfoxesимеют одинаковый корень слова, поискfoxesне будет соответствоватьfoxи наоборот. - Поиск
jumpsне будет соответствоватьleaps. Хотя они не имеют общего корня, они являются синонимами и имеют сходное значение.
Для решения этих проблем анализ текста может нормализовать эти токены в стандартный формат. Это позволяет сопоставлять токены, которые не идентичны поисковым терминам, но достаточно похожи, чтобы оставаться релевантными. Например:
-
Quickможет быть приведён к нижнему регистру:quick. -
foxesможет быть приведён к основе, или сведён к корневому слову:fox. -
jumpиleapявляются синонимами и могут быть проиндексированы как одно слово:jump.
Для обеспечения соответствия поисковых терминов этим словам, как предполагается, вы можете применить те же правила токенизации и нормализации к строке запроса. Например, поиск Foxes leap может быть нормализован до поиска fox jump.
Настройка анализа текста
Анализ текста выполняется анализатором, набором правил, которые управляют всем процессом.
Elasticsearch включает в себя стандартный анализатор, называемый стандартным анализатором, который хорошо работает для большинства случаев прямо из коробки.
Если вы хотите настроить свой опыт поиска, вы можете выбрать другой встроенный анализатор или даже настроить пользовательский. Пользовательский анализатор предоставляет вам контроль над каждым этапом процесса анализа, включая:
- Изменения в тексте до токенизации
- Способ преобразования текста в токены
- Изменения в нормализации токенов перед индексированием или поиском
© 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-overview.html