# Qdrant Multivector: поиск по нескольким векторам одной записи

Источник: https://modelium.tech/zhurnal/qdrant-multivector-maxsim/

Multivector в Qdrant хранит несколько векторов как одну запись и сравнивает её с многовекторным запросом через MaxSim. Ниже — два искусственных примера и способ проверить их порядок; настоящую модель и сервер редакция не запускала. Понадобятся уже работающий локальный Qdrant v1.19.x и терминал.

**Технический уровень.** Понадобятся уже работающий локальный Qdrant v1.19.x, терминал Linux/macOS и `curl`. Это не рецепт установки AI-модели. Инструкция сверена с документацией 20 октября 2026 года: редакция проверила команды только на имитации HTTP-сервера, не запускала настоящий Qdrant. Пример без ключа обращается к `127.0.0.1`; не открывайте тестовую базу в сеть. [s1](#src-s1) [s5](#src-s5)

## Зачем одной записи несколько векторов?

Обычно одной записи соответствует один вектор — список чисел для поиска похожего. Если у одного объекта несколько представлений, Qdrant может хранить их в одной точке как *матрицу* (несколько одинаковых по длине списков чисел). При сравнении `max_sim` для каждого вектора запроса выбирает наиболее похожий вектор точки и складывает оценки. Это даёт **одну оценку на запись**, а не отдельный ответ для каждой строки. Такие матрицы могут создавать специализированные модели вроде ColBERT, но наш короткий пример использует придуманные числа без модели. Для раздельного поиска по заголовку и изображению Qdrant описывает другой механизм — именованные векторы. [s1](#src-s1)

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

Сначала [подготовьте локальный Qdrant](/zhurnal/qdrant-lokalno/). В терминале Linux/macOS используйте новую коллекцию `demo_multivector_20261020`; если она уже существует, остановитесь и замените имя **во всех** командах. Не выполняйте опыт над рабочей коллекцией. Числа ниже придуманы для проверки механизма, не являются эмбеддингами реального текста. [s1](#src-s1) [s3](#src-s3) [s5](#src-s5)

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

- Сохраните две точки с двумя подвекторами в каждой: `curl -fsS -X PUT 'http://127.0.0.1:6333/collections/demo_multivector_20261020/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[[1,0],[0,1]]},{"id":2,"vector":[[1,0],[1,0]]}]}'`. Проверьте `result.status: completed` до поиска. Повторный upsert с теми же ID заменит учебные точки. [s1](#src-s1) [s4](#src-s4)

- Отправьте запрос с двумя направлениями: `curl -fsS -X POST 'http://127.0.0.1:6333/collections/demo_multivector_20261020/points/query' -H 'Content-Type: application/json' -d '{"query":[[1,0],[0,1]],"limit":2,"params":{"exact":true}}'`. Сравните `id` и `score` в `result.points`. Расчётный ориентир для Cosine: ID `1` получает `max(1,0) + max(0,1) = 2`; ID `2` — `max(1,1) + max(0,0) = 1`. **Это не измеренный ответ Qdrant**: сначала убедитесь, что обе точки сохранены и сервер вернул их в ответе. [s1](#src-s1) [s2](#src-s2)

## Когда этот способ не подходит?

Если нужен обычный поиск по одному вектору или [по ID точки](/zhurnal/qdrant-poisk-po-id-pohozhey-tochki/), матрица усложнит данные без необходимости. Не смешивайте многовекторный MaxSim с именованными векторами для разных полей; при сравнении настоящих текстов понадобится совместимая модель, одинаковая размерность её векторов и проверка качества на собственных примерах. Официальная документация ограничивает произведение числа подвекторов и их размерности значением **меньше 1 048 576**; из размера данных нельзя вывести минимум RAM/VRAM. Права на документы и допустимые записи проверяйте отдельно: оценка сходства не заменяет фильтр доступа. [s1](#src-s1)

## Источники

1. [Qdrant — Vectors: Multivectors и Named Vectors](https://qdrant.tech/documentation/manage-data/vectors/index.md) — получено 2026-10-20
2. [Qdrant API v1.19.x — Query points](https://api.qdrant.tech/v-1-19-x/api-reference/search/query-points.md) — получено 2026-10-20
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-20
4. [Qdrant API v1.19.x — Upsert points](https://api.qdrant.tech/v-1-19-x/api-reference/points/upsert-points.md) — получено 2026-10-20
5. [Qdrant — Local Quickstart](https://qdrant.tech/documentation/quickstart/index.md) — получено 2026-10-20
