ТЕХНОЛОГИИ

Функции BM25 в Milvus: объединить разреженный и плотный поиск

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

Функция BM25 в Milvus связывает одно входное текстовое поле с одним генерируемым разреженным выходным полем.

Milvus способен формировать sparse-векторы BM25 из исходного текста объявленной функцией и одновременно искать отдельное плотное представление. Это разные сигналы поиска: их входы, поля и способ слияния должны оставаться видимыми в схеме коллекции.

Проследить путь текста в sparse-поле

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

Связать функции с полями

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

Осознанно добавить dense-поиск

Руководство multi-vector hybrid search использует отдельные поисковые запросы перед объединением их результатов ранжированием. Семантический кодировщик может находить перефразирование, пропущенное лексическим путём, а точным кодам может потребоваться лексическая ветвь. Это основания для опыта, а не гарантии для каждого корпуса. Экспортируйте выдачу ветвей и идентификаторы до оценки fusion. Документ, отсутствующий в обеих ветвях, не появится после изменения одного финального ранжировщика.

Проверить смешанные типы запросов

Создайте учебный набор документов продукта с точными кодами ошибок, обычными описаниями и перефразированными вопросами. Исходный текст должен совпадать между представлениями. Отдельно оцените появление нужного фрагмента среди кандидатов, затем полезность общего порядка.

Тип запросаПроверяемое доказательство
Точный кодТокенизация и лексические кандидаты
ПерефразированиеПлотное представление и кандидаты
Смешанный вопросВклад обеих ветвей

Такой набор определяет роли поиска без выдуманного универсального преимущества по качеству или результатов измерения, которых для этой коллекции ещё не получали.

Разделить анализатор и fusion

Официальный обзор архитектуры помещает лексическую и векторную работу в единый hybrid-процесс. Это не отменяет отдельных контрактов. Анализатор меняет sparse-кандидатов до слияния, а обновление embedding-модели независимо меняет dense-кандидатов. Проверяйте перемены отдельно и сохраняйте исходные списки. Иначе улучшение финального балла можно ошибочно приписать другому компоненту, что помешает воспроизвести результат или обоснованно перенести настройки в следующую коллекцию документов.

Принять индексацию вместе с поиском

Вставьте небольшой известный набор, проверьте ожидаемые сгенерированные поля и выполните сохранённые запросы. Добавьте изменение источника, чтобы опыт не ограничивался первой индексацией. Запишите определения функций, анализатор, плотный checkpoint и конфигурацию ранжирования. Итоговый артефакт объясняет превращение исходного доказательства в оба представления и наблюдаемые ошибки каждого этапа. Одного утверждения о включённом hybrid search для этого недостаточно.

Связанные материалы: Локальный RAG-сервер: какие компоненты размещать рядом с GPU; Embeddings и rerankers: другие задачи для свободного GPU.

← Все материалы