# Qdrant Update Vectors: как заменить один вектор точки и сохранить остальные

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

Если нужно заменить один вектор уже существующей точки Qdrant, используйте Update Vectors, а не повторный Upsert всей точки. Запрос указывает ID и имя изменяемого вектора; другие векторы не должны меняться. Ниже — безопасный пример на новой учебной коллекции с контрольным чтением до и после; настоящий Qdrant редакция не запускала.

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

## Когда менять именно вектор?

Точка — запись с ID, числовым вектором для поиска и необязательными дополнительными полями (*payload*). В одной точке могут храниться несколько векторов с именами, например `text` и `image`. **Update Vectors** меняет только названные в запросе векторы существующей точки; неназванные остаются прежними. Все переданные точки должны уже существовать. Это отличается от повторного Upsert: тот может заменить неуказанные векторы. Для изменения только поля payload есть [отдельная инструкция](/zhurnal/qdrant-obnovit-payload-tochki/). [s1](#src-s1) [s2](#src-s2)

Пример ниже использует пары чисел вместо результатов настоящей модели: он показывает механизм API, **не** качество поиска по тексту или картинке. В рабочей системе размер каждого вектора и его происхождение должны соответствовать настройкам вашей коллекции; не подменяйте производственный вектор игрушечными числами. [s2](#src-s2) [s4](#src-s4)

## Как заменить один вектор на учебной точке?

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

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

Прочитайте исходную запись: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/qv_sandbox_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1],"with_vector":true,"with_payload":true}'`. Проверьте в `result` вектор `text: [1,0]`, вектор `image: [0,1]` и `payload.label: учебный`. Если точка не находится, **не** отправляйте изменение: сначала сверьте коллекцию и ID. [s3](#src-s3)

Измените только `text`: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/qv_sandbox_20261017/points/vectors?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":{"text":[0,1]}}]}'`. `wait=true` запрашивает ожидание выполнения операции; проверьте `result.status: completed`, а не один лишь HTTP 200. В запросе нет `image` и `payload`: не добавляйте их ради «полноты». [s1](#src-s1) [s2](#src-s2)

Повторите чтение **той же** точки: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/qv_sandbox_20261017/points' -H 'Content-Type: application/json' -d '{"ids":[1],"with_vector":true,"with_payload":true}'`. Для неизменённого учебного набора ожидается `text: [0,1]`, `image: [0,1]`, `payload.label: учебный`. Это критерий вашей проверки, не результат теста редакции. Если одно из полей пропало или ответ содержит ошибку, не продолжайте на рабочей коллекции: проверьте версию сервера, ID, размерность, имена и исходный ответ. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

## Что важно проверить перед рабочими данными?

Этот пример не создаёт векторы из текста или изображения: `text` и `image` здесь только имена числовых полей. Для изменения поискового представления реального документа заранее получите корректный новый вектор от той же согласованной модели и проверьте размерность. Если меняете *модель* представления для всей базы, обновление одной точки не мигрирует коллекцию и не меняет модель для пользовательских запросов; отдельный сценарий [переключения подготовленной коллекции](/zhurnal/qdrant-alias-pereklyuchenie-kollekcii/) описывает такой переход. Это редакционный вывод из разделения операций, не гарантия совместимости разных моделей. [s2](#src-s2) [s4](#src-s4)

На рабочей базе сначала сделайте и проверьте [резервную копию](/zhurnal/qdrant-snapshots/), затем выполните тест на отдельных данных и перечитайте точку. Если нужен новый payload, Update Vectors его не задаёт; [изменение поля payload](/zhurnal/qdrant-obnovit-payload-tochki/) — следующий шаг. Не выдавайте этот учебный обмен числами за запуск AI-модели или подтверждённый результат поиска. [s1](#src-s1) [s3](#src-s3)

## Источники

1. [Qdrant — Update vectors, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/update-vectors.md) — получено 2026-10-17
2. [Qdrant — Manage data: Points, Update Vectors](https://qdrant.tech/documentation/manage-data/points/) — получено 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 a 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
