Qdrant: два поиска в одном пакетном запросе
На странице · 3 разделов
Qdrant принимает несколько поисковых запросов к одной коллекции через `/points/query/batch`: каждый запрос задаётся элементом `searches`, ответы приходят списком `result`. На двух учебных векторах можно проверить, что разные запросы находят разные точки. Это инженерный пример по документации v1.19.x; редакция проверила HTTP-команды на фикстуре, но не запускала Qdrant или модель.
Технический уровень. Нужны свой работающий Qdrant v1.19.x и терминал Linux/macOS с
curl. Это не домашний рецепт установки AI-модели. Инструкция сверена с документацией 19 октября 2026 года; редакция не запускала Qdrant, а проверила команды только на локальной HTTP-фикстуре. Пример без ключа отправляет запросы на127.0.0.1: не открывайте незащищённый сервер в сеть. s1 s5
Когда отправлять запросы пакетом?
Если у вас уже есть числовые представления двух запросов к одной коллекции, их можно передать за одно обращение к Qdrant вместо двух отдельных HTTP-запросов. Вектор — список чисел, по которому ищут похожие записи; коллекция хранит такие записи. Пакетный адрес принимает список searches, а в ответе result — список отдельных результатов с полем points. Это не обещание ускорения или улучшения качества: скорость и качество на ваших данных здесь не измерялись. s1 s2
Как увидеть два разных ответа?
Сначала подготовьте локальный Qdrant. Команды ниже рассчитаны на терминал Linux/macOS и свободное имя demo_batch_20261019: не запускайте создание коллекции и запись точек для рабочей коллекции. Два вектора длиной 2 искусственные: они не созданы моделью и не отражают смысл текста. Если меняете имя коллекции, замените его во всех трёх командах. s3 s4
- Создайте учебную коллекцию:
curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_batch_20261019' -H 'Content-Type: application/json' -d '{"vectors":{"size":2,"distance":"Cosine"}}'. Ожидаютсяstatus: okиresult: true. Если коллекция уже есть, не продолжайте: возьмите новое имя. s3 - Добавьте две учебные точки:
curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_batch_20261019/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[1,0]},{"id":2,"vector":[0,1]}]}'. Ожидаютсяstatus: okиresult.status: completed; повторный вызов с теми же ID перезаписывает точки. s4 - Отправьте сразу два поиска:
curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_batch_20261019/points/query/batch' -H 'Content-Type: application/json' -d '{"searches":[{"query":[1,0],"limit":1,"params":{"exact":true}},{"query":[0,1],"limit":1,"params":{"exact":true}}]}'. Проверьтеstatus: ok, затем ID первого элементаresult[0].points[0].idи второгоresult[1].points[0].id. Для этих искусственных ортогональных векторов ожидаются ID1и2соответственно; это расчётный критерий учебного примера, не снятый редакцией ответ Qdrant.exact: trueзадаёт поиск без приближения в каждом запросе. s1 s2
Что делать, если ответ отличается?
Если не появились два элемента result, проверьте, что вызвали именно /points/query/batch и отправили два объекта в searches. Если поиск пуст, сверяйте имя коллекции, успешную запись обеих точек и размерность векторов: здесь везде длина 2. Если сервер требует API-ключ, воспользуйтесь настройкой своей защищённой установки, не публикуйте ключ в общедоступном примере и не делайте ради теста сервер открытым. Даже правильные учебные ID не доказывают качество поиска по настоящим документам или работу локальной модели: оцените свои вопросы и ответы отдельно. Следующий пример — поиск по ID сохранённой точки. s1 s3 s4 s5
Источники
- Qdrant API v1.19.x — Query points in batch. Получено 19.10.2026.
- Qdrant API v1.19.x — Query points. Получено 19.10.2026.
- Qdrant API v1.19.x — Create a collection. Получено 19.10.2026.
- Qdrant API v1.19.x — Upsert points. Получено 19.10.2026.
- Qdrant — Local Quickstart. Получено 19.10.2026.