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

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

Чтобы убрать один именованный вектор у существующей точки Qdrant, используйте Delete Vectors с ID точки и именем вектора. Это не удаляет саму точку и не должно затронуть её остальные векторы. Сначала попробуйте на новой учебной коллекции, затем перечитайте точку: настоящий сервер редакция для этой инструкции не запускала.

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

## Что исчезнет, а что должно остаться?

**Точка** — запись с ID (номером записи), числовыми векторами для поиска и дополнительными полями (*payload*). Здесь у одной учебной точки будут два вектора с именами `text` и `image`. Delete Vectors удаляет названный вектор у выбранной точки, сохраняя остальные. Если вам нужно **заменить** числа в `text`, а не убрать его, откройте [отдельный гайд по Update Vectors](/zhurnal/qdrant-obnovit-vektor-tochki/). [s1](#src-s1) [s5](#src-s5)

Не путайте эту операцию с удалением **самой точки** и с удалением имени вектора **из всей коллекции** — последнее имеет иной API-адрес. Примерные числа ниже не созданы AI-моделью и ничего не говорят о качестве поиска. [s1](#src-s1) [s6](#src-s6)

## Как удалить только `text` у учебной точки?

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

Добавьте точку ID 1 с двумя игрушечными векторами и меткой: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/qv_delete_sandbox_20261020/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 может изменить существующую запись, поэтому не выполняйте этот шаг на чужих данных. [s4](#src-s4) [s5](#src-s5)

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

Удалите только `text` у ID 1: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/qv_delete_sandbox_20261020/points/vectors/delete?wait=true' -H 'Content-Type: application/json' -d '{"points":[1],"vector":["text"]}'`. Ожидайте `result.status: completed`; `acknowledged` означает, что операция принята, но не подтверждает её завершение. Поле запроса здесь называется `**vector**` (в единственном числе), хотя в другом руководстве Qdrant показано `vectors`: закреплённый исходник v1.19.0 принимает оба, а API-схема документирует `vector`. [s1](#src-s1) [s5](#src-s5) [s7](#src-s7)

Повторите **точно ту же** команду чтения. Для неизменённой учебной коллекции ID 1, `image: [0,1]` и `payload.label: учебный` должны сохраниться, а `text` отсутствовать. Это критерий **вашей** проверки, не результат теста Modelium. Если чтение не соответствует ожидаемому, остановитесь и проверьте версию сервера, адрес коллекции и ID; не переносите операцию на рабочие данные. [s1](#src-s1) [s2](#src-s2)

## Когда нельзя повторять это на рабочих данных?

Удаление убирает **одно** поисковое представление записи; прежде чем менять рабочую коллекцию, подготовьте и **проверьте восстановление** [резервной копии Qdrant](/zhurnal/qdrant-snapshots/). Не считайте HTTP 200 или `completed` доказательством сохранности других полей: после операции нужно прочитать именно изменённую точку. Если хотели удалить только дополнительное поле, используйте [гайд по payload](/zhurnal/qdrant-udalit-pole-payload/) вместо запроса к векторам. [s1](#src-s1) [s2](#src-s2)

## Источники

1. [Qdrant — Delete vectors, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/delete-vectors.md) — получено 2026-10-20
2. [Qdrant — Retrieve points, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/get-points.md) — получено 2026-10-20
3. [Qdrant — Create a collection, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/collections/create-collection.md) — получено 2026-10-20
4. [Qdrant — Upsert points, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/points/upsert-points.md) — получено 2026-10-20
5. [Qdrant — Manage data: Points](https://qdrant.tech/documentation/manage-data/points/) — получено 2026-10-20
6. [Qdrant — Delete named vector from collection, API v1.19.x](https://api.qdrant.tech/v-1-19-x/api-reference/collections/delete-vector-name.md) — получено 2026-10-20
7. [Qdrant v1.19.0 — DeleteVectors struct, pinned source](https://github.com/qdrant/qdrant/blob/74f3e85b9473c62560006c043e13737ce6b48412/lib/collection/src/operations/vector_ops.rs) — получено 2026-10-20
