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

Qdrant Scroll: вывести записи по числовому полю

Параметр order_by в Qdrant Scroll упорядочивает точки по полю дополнительной записи (payload). Для числового поля нужен индекс с поддержкой диапазона; direction: desc показывает большие значения первыми. Ниже — команды для отдельной учебной коллекции на своём сервере, а не результат запуска Qdrant редакцией. При такой сортировке обычная постраничная выдача по ID отключается.

Технический уровень. Нужен свой Qdrant v1.19.x и терминал Linux/macOS с curl. Это не домашний рецепт установки AI-модели. Действия сверены с документацией 19 октября 2026 года; редакция не запускала Qdrant. Числа в примере — заданные нами данные, не измерение производительности. Команды обращаются только к 127.0.0.1; сервер с API-ключом потребует отдельной авторизации. s2 s5

Когда нужен порядок по полю?

В коллекции заметок вы хотите увидеть записи с наибольшим числовым значением seq первыми. Точка в Qdrant — запись с ID, вектором и дополнительными полями (payload). Обычный Scroll перечисляет точки по ID, а order_by меняет порядок на значение поля. Это не поиск ближайших по смыслу документов и не проверка прав доступа. s1 s2

Для сортировки по seq предварительно создайте индекс integer: он поддерживает условия диапазона, которые нужны этой операции. Используйте учебное поле с целыми числами; индекс занимает дополнительные ресурсы. При order_by ответ не содержит обычного next_page_offset, так что не переносите в этот пример постраничный обход по ID. s1 s3

Как получить две последние учебные записи?

Если Qdrant ещё не установлен, начните с локальной установки. Выберите свободное имя demo_order_20261019 только для учебного набора; если оно занято, остановитесь и выберите другое имя во всех командах. Не запускайте создание/загрузку на рабочей коллекции. Создайте коллекцию с искусственными двухчисловыми векторами: curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_order_20261019' -H 'Content-Type: application/json' -d '{"vectors":{"size":2,"distance":"Cosine"}}'. Ожидайте status: ok и result: true; размерность 2 не рекомендована для настоящей модели. s5

Создайте числовой индекс: curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_order_20261019/index?wait=true' -H 'Content-Type: application/json' -d '{"field_name":"seq","field_schema":"integer"}'. Дождитесь status: ok и result.status: completed. s3 s4

Запишите три точки в ту же учебную коллекцию: curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_order_20261019/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[1,0],"payload":{"seq":10}},{"id":2,"vector":[0,1],"payload":{"seq":30}},{"id":3,"vector":[1,1],"payload":{"seq":20}}]}'. Ожидайте result.status: completed; повторная запись того же ID может заменить точку. s6

Теперь запросите две записи с большим seq: curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_order_20261019/points/scroll' -H 'Content-Type: application/json' -d '{"limit":2,"order_by":{"key":"seq","direction":"desc"},"with_vector":false}'. Для неизменённого набора ожидаемый порядок result.points — ID 2 (seq:30), затем ID 3 (seq:20). Это вывод из наших входных значений, а не ответ реально запущенного Qdrant. Если порядок иной, проверьте поле, индекс, имя коллекции и то, что точки не менялись параллельно. s1 s2

Что учесть на своей коллекции?

Если нужен полный обход, перейдите к Scroll без сортировки: сортированный ответ не выдаёт next_page_offset. У нескольких точек с одинаковым seq порядок между ними не следует считать стабильным; для страниц Qdrant описывает отдельную схему start_from вместе с исключением уже увиденных ID, но этот расширенный маршрут здесь не нужен. Не используйте order_by как контроль доступа: ограничения на чтение должны быть настроены отдельно. Мы не измеряли время запроса на реальном сервере. s1

Источники

  1. Qdrant — Order Points by Payload Key и ограничение пагинации — Снимок points.html с SHA-256 в research/raw/2026-10-19/seo/qdrant-scroll-order-by/. Получено 19.10.2026.
  2. Qdrant API v1.19.x — Scroll points. Получено 19.10.2026.
  3. Qdrant — Payload indexing, integer и Range. Получено 19.10.2026.
  4. Qdrant API v1.19.x — Create payload index. Получено 19.10.2026.
  5. Qdrant API v1.19.x — Create collection. Получено 19.10.2026.
  6. Qdrant API v1.19.x — Upsert points. Получено 19.10.2026.