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

Qdrant: как удалить одно поле payload точки и проверить остальные

Если устарело одно поле записи Qdrant, используйте Delete payload с ключом поля и ID точки, а не Clear payload или удаление всей точки. На отдельной учебной коллекции сначала прочитайте исходные данные, затем удалите поле и проверьте, что другое поле, вектор и соседняя запись остались. Это инструкция по документации; настоящий сервер редакция не запускала.

Технический уровень. Нужны свой Qdrant с доступом к локальному API и терминал; это не рецепт установки AI-модели. Действия сверены с официальным OpenAPI Qdrant v1.19.2 и документацией v1.19.x на 17 октября 2026 года, но редакция не запускала Qdrant. Выполняйте пример только на новой учебной коллекции по адресу 127.0.0.1; не копируйте команды на рабочую коллекцию. При включённом API-ключе используйте свою защищённую схему доступа, не публикуя ключ. s1 s3

Что исчезнет при удалении одного поля?

Точка — запись Qdrant с ID и вектором; payload — дополнительные именованные поля. Допустим, у точки ID 1 есть tag: old и owner: demo. Нужно убрать устаревший tag, но не owner, вектор или точку ID 2. Путь Delete payload принимает список keys и конкретные points. Не путайте его с Clear payload, который убирает все поля payload у выбранных точек, и с удалением самих точек. s1 s2

Для изменения значения поля вместо удаления есть другой гайд. Здесь мы выбираем ID, не фильтр: массовые запросы опаснее, если условия ошибочны. Перед любой операцией в реальных данных нужны резервная копия и контроль списка ID; это пример на искусственных данных. s1 s2

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

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

Добавьте две искусственные точки: curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_payload_delete_20261017/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[1,0],"payload":{"tag":"old","owner":"demo"}},{"id":2,"vector":[0,1],"payload":{"tag":"keep","owner":"other"}}]}'. Проверьте status: ok и result.status: completed. Upsert перезаписывает существующий ID, поэтому не применяйте команду к старой коллекции. s4

Снимите исходные значения обеих точек: curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_payload_delete_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1,2],"with_payload":true,"with_vector":true}'. В result должны быть обе записи: у ID 1 — tag: old, owner: demo и [1,0]; у ID 2 — tag: keep, owner: other и [0,1]. При другом результате не продолжайте. s5

Удалите только tag у ID 1: curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_payload_delete_20261017/points/payload/delete?wait=true' -H 'Content-Type: application/json' -d '{"keys":["tag"],"points":[1]}'. Ожидайте status: ok и result.status: completed; не меняйте путь на /payload/clear и не расширяйте points. keys: ["tag"] выбирает поле, а points: [1] — одну запись; именно такой запрос по ключу и ID есть в тесте Qdrant. s1 s2

Как проверить, что остальное сохранилось?

Повторите чтение: curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_payload_delete_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1,2],"with_payload":true,"with_vector":true}'. Сверьте обе записи с исходным ответом: у ID 1 поля tag уже нет, но есть owner: demo и вектор [1,0]; у ID 2 сохранились оба поля и [0,1]. Ответ completed на запись не заменяет эту проверку. Если коллега или программа одновременно изменяют коллекцию, отдельные чтения не дают транзакционной гарантии неизменности данных: не переносите учебный порядок действий на рабочую миграцию без контроля записей. s1 s2 s5

В примере нет AI-модели, создания embeddings или измерения качества поиска. Удаление метаданных может изменить поведение фильтров по полям; на настоящих документах сначала убедитесь, какие фильтры нужны приложению. Если вам надо удалить всю точку, это другая операция. s1

Источники

  1. Qdrant v1.19.2 — OpenAPI points: Delete и Clear payload — revision 016542aa5deb6c66380bb137badf73d54f742bde; Снимок api-points.yaml в research/raw/2026-10-17/seo/qdrant-udalit-pole-payload/. Получено 17.10.2026.
  2. Qdrant v1.19.2 — интеграционный тест удаления поля — revision 016542aa5deb6c66380bb137badf73d54f742bde; Тест с keys, points и GET результата; снимок upstream-test.py. Получено 17.10.2026.
  3. Qdrant — Create collection, API v1.19.x — Снимок create.md и SHA-256 в manifest.json. Получено 17.10.2026.
  4. Qdrant — Upsert points, API v1.19.x — Снимок upsert.md и SHA-256 в manifest.json. Получено 17.10.2026.
  5. Qdrant — Retrieve points, API v1.19.x — Снимок get.md и SHA-256 в manifest.json. Получено 17.10.2026.