Qdrant: переключить поиск на новую коллекцию через алиас
На странице · 3 разделов
Алиас Qdrant — постоянное имя, по которому приложение обращается к коллекции. Можно заранее подготовить и проверить новую коллекцию, затем одним запросом переназначить алиас с прежней на новую; смена адреса атомарна. Это не перенос векторов и не обновление модели, которая превращает запрос пользователя в вектор: их нужно подготовить и согласовать отдельно.
Уровень: технический; документация сверена 17 октября 2026 года. Нужен уже работающий Qdrant и право менять коллекции. Modelium не выполнял переключение на живом сервере: команды ниже проверены как синтаксический пример, а не как результат запуска Qdrant. Для первого знакомства с ним начните с локального Qdrant. s1 s3
Что именно переключает алиас?
Представьте, что поиск в вашем приложении обращается к имени docs_active, а это алиас коллекции docs_v1. Вы заранее подготовили docs_v2 и хотите направить запросы к ней, не меняя имя в приложении. Qdrant разрешает обращаться к коллекции по алиасу и атомарно менять его цель: один запрос на изменение алиасов удаляет прежнюю связь и создаёт новую. Два отдельных запроса для этого не равнозначны. s1 s3
Само переназначение не копирует документы, не создаёт векторы и не обновляет модель, которая превращает новый поисковый запрос в вектор (embedding-модель). Если вы меняете именно эту модель, подготовьте новую коллекцию и согласуйте переход приложения на новую модель запросов: атомарность алиаса не гарантирует атомарности всей пары «приложение + модель поиска». Это наш вывод из разделения этапов в руководстве Qdrant, а не обещание бесшовной миграции. s2
Что проверить до изменения рабочего адреса?
Используйте закрытый тестовый Qdrant, а не боевой кластер; в примере ниже имена docs_v1, docs_v2 и docs_active учебные. Убедитесь, что обе коллекции существуют, docs_active сейчас указывает на docs_v1, а приложение обращается именно к алиасу, не к жёстко прописанной docs_v1. Список связей возвращает GET /aliases; сведения о конкретной коллекции — GET /collections/{collection_name}. На локальном тестовом сервере первое чтение: curl -fsS 'http://127.0.0.1:6333/aliases'. В ответе проверьте result.aliases: до изменения ожидайте пару alias_name: docs_active, collection_name: docs_v1. Не запускайте POST, если текущая цель не та. s1
Если перестраиваете векторы для другой модели, пересчитайте их из исходных данных, сравните число и контрольные ID, а затем проверьте выдачу по нескольким вашим вопросам на обеих коллекциях. Новые записи во время подготовки должны попадать в обе; для удалений и частичных обновлений документация требует отдельного механизма либо паузы. На этапе поиска обновите модель векторизации запросов, иначе сопоставление со старой/новой коллекцией может потерять смысл. Не выдавайте пример миграции Qdrant с Cloud Inference за полностью локальную схему: для офлайна требуется отдельная проверка каждого компонента. s2
Зафиксируйте цель алиаса и контрольную выдачу до изменения, сохраните план возврата к docs_v1 и не удаляйте её сразу. Snapshot коллекции не содержит алиасов — его маршрут отдельно описан в гайде о резервной копии. На сервере с API-ключом добавьте требуемый заголовок api-key безопасным способом; не вставляйте секрет в публичный текст или снимки экрана. s1
Как переназначить алиас и проверить ответ?
Только на собственном тестовом Qdrant, где обе коллекции подготовлены, выполните один запрос: curl -fsS -X POST 'http://127.0.0.1:6333/collections/aliases' -H 'Content-Type: application/json' -d '{"actions":[{"delete_alias":{"alias_name":"docs_active"}},{"create_alias":{"collection_name":"docs_v2","alias_name":"docs_active"}}]}'. Ожидайте ответ со status: ok и result: true. Не разбивайте действия на два POST: Qdrant документирует атомарность общего запроса. s1 s3
Снова вызовите curl -fsS 'http://127.0.0.1:6333/aliases' и проверьте в result.aliases пару docs_active → docs_v2. Затем отправьте тот же контрольный запрос через алиас и напрямую к docs_v2; сравните идентификаторы документов и ответы приложения с заранее сохранённым эталоном. status: ok сам по себе показывает только результат операции над алиасом, не качество поиска. Если чтение алиаса или контрольный поиск не прошли, остановите дальнейшую миграцию и разберите точный ответ API. s1 s2 s3
Для возврата при ошибке, пока docs_v1 ещё доступна и совместима с моделью запросов, повторите одну атомарную операцию с delete_alias для docs_active и create_alias для docs_v1, затем опять проверьте GET /aliases и контрольный поиск. Если приложение уже переключилось на другую embedding-модель, сначала согласуйте его возврат: один откат алиаса может не восстановить правильные ответы. Это инструкция по документации, не испытанный план аварийного восстановления Modelium. s1 s2
Следующий шаг: проведите проверку качества поиска на фиксированном наборе вопросов и сравните результаты обеих коллекций до изменения рабочего алиаса. s2
Источники
- Qdrant — Collections: Collection Aliases — Снимок collections.html и SHA-256 в manifest.json. Получено 17.10.2026.
- Qdrant — Migrate to a New Embedding Model — Снимок migration.html и SHA-256 в manifest.json; отдельные примеры Cloud Inference не являются офлайн-рецептом. Получено 17.10.2026.
- Qdrant REST API — Update collection aliases — Снимок alias-api.html и SHA-256 в manifest.json; API reference v1.19.x. Получено 17.10.2026.