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

Источник: https://modelium.tech/zhurnal/qdrant-obnovit-payload-tochki/

Если у записи Qdrant изменился, например, статус документа, не обязательно загружать вектор заново. Операция Set payload меняет переданные поля выбранной точки; после неё перечитайте запись и проверьте как новый статус, так и неизменное поле. Ниже — инструкция для собственного тестового Qdrant, а не проверенный редакцией запуск сервера.

**Технический уровень.** Нужны собственный Qdrant и терминал: это не домашний рецепт установки AI-модели. Ниже приведена инструкция по официальной документации API v1.19.x на 17 октября 2026 года. Редакция не запускала сервер и не выполняла изменение на нём. Команды обращаются только к `127.0.0.1` и специально созданной учебной коллекции; не переносите их на рабочие данные. Если ваш сервер требует API-ключ, настройте доступ по его инструкции и не публикуйте секреты. [s1](#src-s1) [s4](#src-s4)

## Что именно изменится у записи?

**Точка** Qdrant — запись с ID, вектором и дополнительными полями (*payload*). Допустим, у учебного документа ID 1 есть поля `stage: draft` и `owner: demo`. Нужно изменить только `stage` на `ready`, оставив `owner` прежним. Операция **Set payload** (`POST .../points/payload`) устанавливает переданные поля выбранной точки. Не путайте её с **Overwrite payload** (`PUT` на тот же адрес): тот заменяет весь payload и в таком примере убрал бы `owner`. [s1](#src-s1) [s2](#src-s2) [s6](#src-s6)

Здесь указан **ID**, а не фильтр: список ID ограничивает действие одной записью. Для Qdrant с несколькими одновременными писателями отдельное чтение не резервирует точку и не гарантирует, что другой процесс не изменит её между проверками. Согласуйте изменение рабочих данных отдельно; ниже только учебный опыт. [s1](#src-s1) [s3](#src-s3)

## Как поменять поле в отдельной коллекции?

Сначала откройте [гайд локального Qdrant](/zhurnal/qdrant-lokalno/) и проверьте доступ к своему тестовому API на `http://127.0.0.1:6333`. В терминале создайте **новую** коллекцию: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/docs_payload_sandbox_20261017' -H 'Content-Type: application/json' -d '{"vectors":{"size":2,"distance":"Cosine"}}'`. Ожидается `status: ok`, `result: true`. Если такая коллекция уже существует, **остановитесь** и придумайте другое новое учебное имя; одинаково замените его во всех следующих командах. Два числа в векторе — только игрушечный пример, не параметры настоящей модели. [s4](#src-s4)

Добавьте одну учебную запись: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/docs_payload_sandbox_20261017/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[1,0],"payload":{"stage":"draft","owner":"demo"}}]}'`. Ожидайте `status: ok` и `result.status: completed`; при ином статусе не продолжайте. **Upsert с существующим ID перезаписывает точку**, поэтому этот шаг допустим только в новой пустой коллекции. [s5](#src-s5)

Для исходной сверки прочитайте ID 1: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/docs_payload_sandbox_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1],"with_payload":true,"with_vector":false}'`. В массиве `result` ожидайте один объект с `id: 1`, `stage: draft` и `owner: demo`. Если точка отсутствует или поля отличаются, не меняйте её. [s3](#src-s3)

Теперь задайте **только одно поле**: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/docs_payload_sandbox_20261017/points/payload?wait=true' -H 'Content-Type: application/json' -d '{"points":[1],"payload":{"stage":"ready"}}'`. Проверяйте `status: ok` и `result.status: completed`. Важно: метод здесь **POST**, тело содержит `points:[1]`, не широкий `filter`; не заменяйте POST на PUT. [s1](#src-s1) [s2](#src-s2)

## Как убедиться, что другие данные остались?

Повторите запрос чтения: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/docs_payload_sandbox_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1],"with_payload":true,"with_vector":false}'`. Сравните *оба* поля: `stage` должно стать `ready`, а `owner` остаться `demo`. Если второго поля нет, остановитесь и проверьте, не был ли по ошибке отправлен PUT; `completed` само по себе не доказывает правильность содержимого. При параллельных изменениях другой программой результат может отличаться. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

Эта операция не запускает AI-модель и не пересчитывает векторы: учебный вектор добавлен отдельно. Для проверяемого следующего шага откройте [гайд фильтрации по полям](/zhurnal/qdrant-filtry-metadannyh/) и проверьте выбор записи с `stage: ready`. Если нужно **удалять точки**, а не исправлять поле, это [другая операция с отдельной предварительной проверкой](/zhurnal/qdrant-udalit-tochki-po-filtru/). [s1](#src-s1) [s5](#src-s5)

## Источники

1. [Qdrant — Set payload, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/set-payload.md) — получено 2026-10-17
2. [Qdrant — Overwrite payload, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/overwrite-payload.md) — получено 2026-10-17
3. [Qdrant — Retrieve points, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/get-points.md) — получено 2026-10-17
4. [Qdrant — Create collection, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/collections/create-collection.md) — получено 2026-10-17
5. [Qdrant — Upsert points, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/upsert-points.md) — получено 2026-10-17
6. [Qdrant — Manage data: Payload](https://qdrant.tech/documentation/manage-data/payload/) — получено 2026-10-17
