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

Семантический поиск

Семантический поиск — это метод поиска данных, основанный на намерении и контекстуальном значении запроса, а не на соответствии по ключевым словам (лексический поиск).

Elasticsearch предоставляет различные возможности семантического поиска, используя обработку естественного языка (NLP) и поиск по векторам. Использование модели NLP позволяет извлекать векторные представления текста. Векторные представления — это векторы, которые предоставляют числовое представление текста. Фрагменты контента с похожим значением имеют похожие представления.

Overview of semantic search workflows in Elasticsearch

У вас есть несколько вариантов использования моделей NLP в Elastic Stack:

  • использование потока semantic_text (рекомендуется)
  • использование потока API инференции
  • развертывание моделей непосредственно в Elasticsearch

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

Вы также можете хранить собственные векторные представления в Elasticsearch в качестве векторов. Обратитесь к этому разделу для получения руководства по тому, какой тип запроса использовать для семантического поиска.

При выполнении запроса Elasticsearch может использовать ту же модель NLP для преобразования запроса в векторные представления, позволяя находить документы с похожими векторными представлениями текста.

Выбор потока семантического поиска

semantic_text поток

Самый простой способ использования моделей NLP в Elastic Stack — это semantic_text поток. Мы рекомендуем использовать этот подход, так как он абстрагирует от большого объёма ручного труда. Всё, что вам нужно сделать, это создать конечную точку инференции и отображение индекса, чтобы начать загрузку, создание векторных представлений и поиск данных. Нет необходимости определять параметры, связанные с моделью, или создавать конвейеры инжеста инференции. Обратитесь к документации Создание конечной точки API инференции для получения списка поддерживаемых сервисов.

Учебник по семантическому поиску с semantic_text показывает весь процесс.

поток API инференции

Поток API инференции более сложен, но предоставляет больший контроль над конфигурацией конечной точки инференции. Вам нужно создать конечную точку инференции, предоставить различные параметры, связанные с моделью, определить отображение индекса и настроить конвейер инжеста инференции с соответствующими параметрами.

Учебник по семантическому поиску с API инференции показывает весь процесс.

Поток развертывания модели

Вы также можете вручную развернуть NLP в Elasticsearch, не используя конечную точку инференции. Это самый сложный и трудоёмкий поток для выполнения семантического поиска в Elastic Stack. Вам нужно выбрать модель NLP из списка поддерживаемых плотных и разреженных векторных моделей, развернуть её с помощью клиента Eland, создать отображение индекса и настроить подходящий конвейер инжеста для начала загрузки и поиска данных.

Учебник по семантическому поиску с развернутой моделью в Elasticsearch показывает весь процесс.

Использование правильного запроса

Создание правильного запроса имеет важное значение для семантического поиска. Какой запрос использовать и на какое поле ориентироваться в своих запросах зависит от выбранного вами потока. Если вы используете поток semantic_text, это довольно просто. В противном случае это зависит от того, с каким типом векторных представлений вы работаете.

Тип поля для запроса Используемый запрос Примечания

semantic_text

semantic

Поле semantic_text обрабатывает для вас генерацию векторных представлений во время индексирования и выполнения запросов.

sparse_vector

sparse_vector

Запрос sparse_vector может генерировать векторные представления запроса для вас, но вы также можете предоставить свои собственные. Вы должны предоставить векторные представления при индексировании.

dense_vector

knn

Запрос knn может генерировать векторные представления запроса для вас, но вы также можете предоставить свои собственные. Вы должны предоставить векторные представления при индексировании.

Если вы хотите, чтобы Elasticsearch генерировал векторные представления как при индексировании, так и при выполнении запросов, используйте поле semantic_text и запрос semantic. Если вы хотите предоставить свои собственные векторные представления, используйте поле типа sparse_vector или dense_vector и соответствующий запрос в зависимости от модели NLP, которую вы использовали для генерации векторных представлений.

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

Подробнее

  • Учебники:

    • Семантический поиск с semantic_text
    • Семантический поиск с API инференции
    • Семантический поиск с ELSER используя поток развертывания модели
    • Семантический поиск с развернутой моделью в Elasticsearch
    • Семантический поиск с моделью msmarco-MiniLM-L-12-v3 sentence-transformer
  • Интерактивные примеры:

    • Репозиторий elasticsearch-labs содержит ряд интерактивных примеров семантического поиска в виде исполняемых Python-блокнотов, использующих Elasticsearch Python-клиент
    • Семантический поиск с ELSER используя поток развертывания модели
    • Семантический поиск с semantic_text
  • Блоги:

    • Новый тип отображения semantic_text Elasticsearch: Упрощение семантического поиска
    • Представляем Elastic Learned Sparse Encoder: модель ИИ Elastic для семантического поиска
    • Как получить лучшее из лексического и AI-поиска с помощью векторной базы данных Elastic
    • Серия статей об информационном поиске:

      • Часть 1: Шаги по улучшению релевантности поиска
      • Часть 2: Проверка эффективности поиска по фрагментам
      • Часть 3: Представляем Elastic Learned Sparse Encoder, нашу новую модель поиска
      • Часть 4: Гибридный поиск

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

Spec-Zone.ru

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