Перейти к содержанию
modelium.
Начать с задачи
←

Qdrant: два поиска в одном пакетном запросе

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

  1. Создайте учебную коллекцию: 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
  2. Добавьте две учебные точки: 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
  3. Отправьте сразу два поиска: 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. Для этих искусственных ортогональных векторов ожидаются ID 1 и 2 соответственно; это расчётный критерий учебного примера, не снятый редакцией ответ Qdrant. exact: true задаёт поиск без приближения в каждом запросе. s1 s2

Что делать, если ответ отличается?

Если не появились два элемента result, проверьте, что вызвали именно /points/query/batch и отправили два объекта в searches. Если поиск пуст, сверяйте имя коллекции, успешную запись обеих точек и размерность векторов: здесь везде длина 2. Если сервер требует API-ключ, воспользуйтесь настройкой своей защищённой установки, не публикуйте ключ в общедоступном примере и не делайте ради теста сервер открытым. Даже правильные учебные ID не доказывают качество поиска по настоящим документам или работу локальной модели: оцените свои вопросы и ответы отдельно. Следующий пример — поиск по ID сохранённой точки. s1 s3 s4 s5

Источники

  1. Qdrant API v1.19.x — Query points in batch. Получено 19.10.2026.
  2. Qdrant API v1.19.x — Query points. Получено 19.10.2026.
  3. Qdrant API v1.19.x — Create a collection. Получено 19.10.2026.
  4. Qdrant API v1.19.x — Upsert points. Получено 19.10.2026.
  5. Qdrant — Local Quickstart. Получено 19.10.2026.