Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Поиск данных

Полный поиск по тексту

Практическое введение в поиск по тексту

Хотите сразу перейти к практическому руководству? Обратитесь к нашему быстрому началу учебника по поиску по тексту.

Поиск по тексту, также известный как лексический поиск, — это метод быстрого и эффективного поиска по текстовым полям в документах. Документы и запросы поиска преобразуются для обеспечения возврата релевантных результатов вместо просто точного совпадения терминов. Поля типа text анализируются и индексируются для полнотекстового поиска.

Основываясь на десятилетиях исследований в области информационного поиска, полнотекстовый поиск обеспечивает надёжные результаты, которые предсказуемо масштабируются по мере роста данных. Поскольку он эффективно работает на процессорах, полнотекстовый поиск Elasticsearch требует минимальных вычислительных ресурсов по сравнению с ресурсоёмкими векторными операциями на GPU.

Вы можете объединить полнотекстовый поиск с семантическим поиском с использованием векторов, чтобы создать современные гибридные приложения поиска. Хотя поиск с векторами может потребовать дополнительных ресурсов GPU, полнотекстовая составляющая остаётся экономически эффективной за счёт использования имеющейся инфраструктуры процессоров.

Как работает поиск по тексту

На следующей диаграмме показаны компоненты полнотекстового поиска.

Components of full-text search from analysis to relevance scoring

В общих чертах полнотекстовый поиск включает следующее:

  • Анализ текста: Анализ состоит из последовательности преобразований. Текст преобразуется в формат, оптимизированный для поиска, с использованием таких методов, как стемминг, приведение к нижнему регистру и удаление стоп-слов. Elasticsearch содержит ряд встроенных анализаторов и токенизаторов, включая варианты анализа текстов конкретных языков. Вы также можете создавать собственные анализаторы.

    Обратитесь к тестированию анализатора, чтобы узнать, как протестировать анализатор и просмотреть токины и метаданные, которые он генерирует.

  • Создание инвертированного индекса: После завершения анализа Elasticsearch создаёт инвертированный индекс из полученных токенов. Инвертированный индекс — это структура данных, которая сопоставляет каждый токен с документами, которые его содержат. Он состоит из двух ключевых компонентов:

    • Словарь: Отсортированный список всех уникальных терминов в коллекции документов в вашем индексе.
    • Список ссылок: Для каждого термина — список идентификаторов документов, где появляется этот термин, а также необязательные метаданные, такие как частота термина и позиция.
  • Оценивание релевантности: Результаты ранжируются по степени релевантности заданному запросу. Балл релевантности каждого документа представлен положительным числом с плавающей запятой, называемым _score. Чем выше _score, тем более релевантен документ.

    По умолчанию Elasticsearch использует алгоритм схожести Okapi BM25 для расчёта баллов релевантности, являющийся вариацией алгоритма TF-IDF. BM25 рассчитывает баллы релевантности на основе частоты термина, частоты документа и длины документа. Обратитесь к этой технической публикации в блоге для углублённого изучения BM25.

  • Запрос полнотекстового поиска: Текст запроса анализируется так же, как и индексированный текст, и полученные токины используются для поиска в инвертированном индексе.

    DSL запросов поддерживает ряд запросов полнотекстового поиска.

    Начиная с версии 8.17, ES|QL также поддерживает функции полнотекстового поиска.

Начало работы

Для практического введения в полнотекстовый поиск обратитесь к учебнику по полнотекстовому поиску.

Дополнительная информация

Вот некоторые ресурсы, которые помогут вам узнать больше о полнотекстовом поиске с использованием Elasticsearch.

Основные понятия

Узнайте о ключевых компонентах полнотекстового поиска:

  • Текстовые поля
  • Анализ текста

    • Токенизаторы
    • Анализаторы

Языки запросов Elasticsearch

Узнайте, как создавать запросы полнотекстового поиска с помощью языков запросов Elasticsearch:

  • Полнотекстовые запросы с использованием Query DSL
  • Функции полнотекстового поиска в ES|QL

Расширенные темы

Для углублённого технического анализа реализации BM25 Elasticsearch прочитайте эту публикацию в блоге: The BM25 Algorithm and its Variables.

Чтобы узнать, как оптимизировать релевантность результатов поиска, обратитесь к оптимизации релевантности поиска.

© 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/full-text-search.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API