Оглавление курса

Векторный и гибридный поиск

Сопоставим поиск по словам и смыслу и разберём стоимость нового этапа retrieval.

Разделов: 4Elasticsearch 9.4.3Ещё не прочитан

Чему вы научитесь

  • Представление смысла
  • Поиск кандидатов и фильтры
  • Гибрид и RAG

Сопоставим поиск по словам и смыслу и разберём стоимость нового этапа retrieval.

Механизм работы
  • Лексические и векторные кандидаты
  • Объединение рангов
  • Rerank → выдача

Сопоставим поиск по словам и смыслу и разберём стоимость нового этапа retrieval.

Курс ориентирован на Elasticsearch 9.4.3. Разборы упражнений используют публичный набор products; остальные запросы показывают отдельные учебные индексы и могут требовать подготовки или прав, недоступных в тренажёре. Ответы сокращены, score может меняться. Для расширенных функций проверяйте лицензию и вариант развёртывания.

01 / 04

Представление смысла

Embedding переводит текст в числовое представление, где выбранная метрика отражает близость. Dense-векторы и sparse-представления имеют разные структуры и требования. Модель должна подходить языку и предметной области; смена модели обычно требует переобработки данных. Близость не гарантирует фактической правильности, нужного артикула или доступности товара.

Самопроверка
02 / 04

Поиск кандидатов и фильтры

Approximate kNN ускоряет поиск соседей с компромиссом по recall, памяти и индексации. k ограничивает выдаваемых соседей, num_candidates влияет на поиск кандидатов в соответствующем API. Pre-filter ограничивает допустимых соседей во время поиска; post-filter может оставить меньше k результатов. Размерность, similarity и параметры индекса должны соответствовать модели. semantic_text упрощает управляемые workflows, но не убирает стоимость inference.

Самопроверка
03 / 04

Гибрид и RAG

Гибрид объединяет лексические и семантические кандидаты. RRF использует позиции, избегая прямого сложения несопоставимых score; reranking уточняет небольшой набор более дорогой моделью. Chunking делит длинные документы, но требует сохранения источника, доступа и связности фрагментов. В RAG качество ответа зависит от retrieval и генерации отдельно. Inference endpoints, RRF и reranking проверяют на доступность в выбранном deployment и лицензии.

Три измерения используются только для демонстрации схемы; production-размерность задаёт embedding-модель.

PUT /course-products-vectors
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "embedding": {
        "type": "dense_vector",
        "dims": 3,
        "similarity": "cosine"
      },
      "in_stock": {
        "type": "boolean"
      }
    }
  }
}

Как читать результат

Три измерения используются только для демонстрации схемы; production-размерность задаёт embedding-модель.

Самопроверка
04 / 04

Разбор на примере каталога

Для запроса «что надеть на пробежку под дождём» векторная ветвь может найти подходящую одежду без буквального совпадения. Для артикула RUN-042 она может подобрать похожие модели вместо нужной. Поэтому точный и смысловой сценарии оценивают отдельно. При гибриде применяйте одинаковые ограничения доступа и наличия в каждой ветви. Если модель недоступна, лексический fallback должен соблюдать тот же контракт и явно учитываться в метриках. Улучшение NDCG оценивайте вместе с p95 и стоимостью embedding.

Документ с учебным вектором

PUT /course-products-vectors/_doc/sku-1?refresh=wait_for
{
  "name": "Rain jacket",
  "in_stock": true,
  "embedding": [
    0.1,
    0.2,
    0.9
  ]
}

Как читать результат

Вектор выбран вручную только для проверки механики. В реальной системе документ и запрос кодирует совместимая модель; произвольные числа не создают семантический поиск.

kNN с обязательным фильтром

POST /course-products-vectors/_search
{
  "size": 5,
  "knn": {
    "field": "embedding",
    "query_vector": [
      0.1,
      0.2,
      0.9
    ],
    "k": 5,
    "num_candidates": 50,
    "filter": {
      "term": {
        "in_stock": true
      }
    }
  }
}

Как читать результат

Фильтр применяется внутри kNN к допустимым соседям. Меньше пяти документов в индексе может дать меньше пяти результатов; k не обещает существование нужного количества подходящих товаров.

Самопроверка

Самопроверка

Сначала ответьте самостоятельно, затем раскройте объяснение.

1. Embedding гарантирует точный артикул?

Нет, для идентификаторов нужен точный лексический путь.

2. Что теряется при approximate kNN?

Часть истинных ближайших соседей: измеряют recall.

3. Почему post-filter возвращает меньше k?

Он удаляет часть уже выбранных соседей.

4. Что объединяет RRF?

Ранги результатов из нескольких retrieval-ветвей.

5. Зачем проверять доступ после chunking?

Фрагменты не должны раскрывать недоступный исходный документ.

Краткая памятка

  • Нет, для идентификаторов нужен точный лексический путь.
  • Часть истинных ближайших соседей: измеряют recall.
  • Он удаляет часть уже выбранных соседей.
  • Ранги результатов из нескольких retrieval-ветвей.
  • Фрагменты не должны раскрывать недоступный исходный документ.

Официальная документация

Готовы применить знания?

Подтвердите прочтение, чтобы сохранить своё место. Чтение и решение заданий учитываются отдельно в этом браузере с помощью гостевой cookie.