В этом материале
Функция 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.