# Qdrant: найти похожие точки по ID сохранённой записи

Источник: https://modelium.tech/zhurnal/qdrant-poisk-po-id-pohozhey-tochki/

Если запись уже сохранена в Qdrant, её ID можно передать в Query API вместо нового вектора. Сервер возьмёт вектор записи и найдёт близкие точки в той же коллекции. Ниже — инженерный пример по документации v1.19.x на искусственных данных; редакция не запускала Qdrant или модель.

**Технический уровень.** Понадобятся собственный Qdrant v1.19.x и терминал Linux/macOS с `curl`; это не домашний рецепт установки AI-модели. Шаги сверены с официальной документацией 19 октября 2026 года. Редакция проверила команды только на учебной HTTP-фикстуре, но не запускала Qdrant и модель. Работайте только на `127.0.0.1` в отдельной учебной коллекции; пример без ключа не подходит защищённому серверу и не предназначен для открытой сети. [s2](#src-s2) [s3](#src-s3)

## Когда искать по ID, а не читать запись?

Допустим, у вас в базе есть фрагмент документа с ID `1`, и вы хотите найти похожие фрагменты. **Точка** — сохранённая запись; её **вектор** — набор чисел для сравнения. Qdrant Query API принимает существующий ID в поле `query` и использует сохранённый вектор для поиска: повторно превращать данные в вектор для этого запроса не нужно. Это не то же самое, что [прочитать одну точку по ID](/zhurnal/qdrant-get-point-by-id/): там результатом будет сама запись, здесь — список похожих точек с оценками. [s1](#src-s1) [s2](#src-s2) [s5](#src-s5)

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

Сначала [подготовьте локальный Qdrant](/zhurnal/qdrant-lokalno/). Убедитесь, что имя `demo_by_id_20261019` свободно: команды создадут коллекцию и запишут три точки. **Не запускайте их в рабочей коллекции.** Все три вектора искусственные, размерность `2` выбрана только для опыта; это не векторы текстовой AI-модели и не её требования к компьютеру. Если меняете имя коллекции, замените его в каждой команде. [s3](#src-s3) [s4](#src-s4)

- Создайте коллекцию с мерой близости Cosine: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_by_id_20261019' -H 'Content-Type: application/json' -d '{"vectors":{"size":2,"distance":"Cosine"}}'`. Ожидаются `status: ok` и `result: true`; если имя занято, остановитесь, а не меняйте данные существующей коллекции. [s3](#src-s3)

- Запишите точки: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_by_id_20261019/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[1,0],"payload":{"label":"образец"}},{"id":2,"vector":[0.8,0.6],"payload":{"label":"похожа"}},{"id":3,"vector":[0,1],"payload":{"label":"другая"}}]}'`. Ожидаются `status: ok` и `result.status: completed`. Повторная запись того же ID может изменить прежнюю точку, поэтому здесь нужна новая учебная коллекция. [s4](#src-s4)

- Найдите соседей точки `1`: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_by_id_20261019/points/query' -H 'Content-Type: application/json' -d '{"query":1,"limit":3,"with_payload":true,"params":{"exact":true}}'`. В `result.points` ищите ID, `score` и `payload.label`: у искусственных векторов точка `2` ближе к образцу `1`, чем точка `3`. Образец `1` также может встретиться в выдаче — запрос не является командой «исключить себя». `exact: true` отключает приближённый поиск для этого маленького теста; на больших коллекциях он может быть медленным. Это ожидаемое свойство учебных векторов, **не** измеренный редакцией ответ Qdrant. [s1](#src-s1) [s2](#src-s2)

## Если ответ пуст или порядок удивил

Проверьте, что первые две команды вернули успешный статус и в `query` указан **числовой** ID `1` существующей точки, а не текст метки. Коллекция должна содержать вектор образца; для нескольких именованных векторов необходимо отдельно задать `using` с нужным именем. Если получить список не удаётся, сначала [прочитайте запись по ID](/zhurnal/qdrant-get-point-by-id/). Не переносите учебные оценки похожести на реальные тексты: там векторы создаёт выбранная вами модель, а полезность соседей проверяют по исходным документам. Параметр `with_payload: true` добавляет метки к найденным точкам; сам поиск не проверяет права доступа к документам. [s2](#src-s2)

## Источники

1. [Qdrant — Similarity Search: Search By Id](https://qdrant.tech/documentation/search/search.md) — получено 2026-10-19
2. [Qdrant API v1.19.x — Query points](https://api.qdrant.tech/v-1-19-x/api-reference/search/query-points.md) — получено 2026-10-19
3. [Qdrant API v1.19.x — Create a collection](https://api.qdrant.tech/v-1-19-x/api-reference/collections/create-collection.md) — получено 2026-10-19
4. [Qdrant API v1.19.x — Upsert points](https://api.qdrant.tech/v-1-19-x/api-reference/points/upsert-points.md) — получено 2026-10-19
5. [Qdrant — Query points by existing ID: official snippet](https://qdrant.tech/documentation/snippets/query-points/by-existing-id/index.md) — получено 2026-10-19
