Источник
Qdrant
Официальный сайт Qdrant: позиционирование векторной базы данных, продуктовые возможности и deployment-модели.
Документация
Qdrant Docs: Overview
Ключевые концепции: collections, points, payload filters, distributed mode, consistency и performance-тюнинг.
Qdrant - векторная база данных и движок similarity search для AI/ML систем. В системном дизайне её обычно ставят как retrieval-layer рядом с OLTP source of truth: хранение embeddings, payload-фильтры, hybrid search и low-latency top-k выдача для RAG/поиска.
История и контекст
Появление distributed mode
Qdrant получает режим распределённого кластера с шардированием и репликами для production-нагрузок.
Стабилизация API и production adoption
Формируется стабильный API и экосистема SDK; Qdrant чаще используется как retrieval-layer в AI/ML системах.
Sparse vectors и user-defined sharding
Добавляются sparse vectors и более гибкое управление распределением данных между shard-ами.
Multivectors и advanced retrieval
Появляется поддержка multivectors для сложных retrieval-сценариев с несколькими векторами на точку.
ACORN и strict filtering improvements
Улучшается выполнение строгой фильтрации в HNSW traversal, что важно для фильтруемого поиска в RAG.
Ключевые архитектурные элементы
Коллекции, точки и payload
Базовая модель — коллекции с точками, где каждая точка содержит векторы и payload-атрибуты для фильтров.
Filterable ANN
Поиск строится вокруг ANN (HNSW) и payload-фильтрации, что позволяет совмещать семантику и бизнес-ограничения.
Durability и storage layout
WAL + сегменты обеспечивают durability, а on-disk/memmap/quantization помогают контролировать стоимость хранения.
Кластерный режим
Шарды и реплики масштабируют throughput; read/write consistency и ordering дают управление компромиссами.
Векторная модель данных и payload-фильтрация
Ниже интерактивный разбор data model Qdrant: dense/sparse/multivector схемы, named vectors, payload-фильтры и storage-параметры, влияющие на latency и стоимость.
Модель данных Qdrant: больше, чем "хранилище embedding"
Qdrant хранит точки с векторами и payload, поддерживает dense/sparse/multivector схемы и фильтруемый retrieval.
Почему Qdrant — это не только ANN по одному вектору
- Точка может содержать векторы и структурированный payload для фильтрации и бизнес-атрибутов.
- Dense и sparse представления можно комбинировать в гибридных retrieval-сценариях.
- Named vectors и multivectors позволяют хранить несколько embedding-пространств на один объект.
- Индексы и storage-конфигурация (on-disk, quantization) дают контроль над latency и стоимостью.
Dense vectors
Классический ANN retrieval по embedding в фиксированной размерности (например, 768/1024).
Ключевые элементы
Типичные сценарии
- Semantic search
- RAG retrieval
- Recommendations
Пример
"vectors": { "size": 768, "distance": "Cosine" }High-Level Architecture
Ниже high-level контур Qdrant в продуктовой системе: API и ingestion слой, коллекции/шарды, ANN + payload indexing, durability pipeline и кластерные механики.
System view
Qdrant is typically used as a dedicated vector retrieval layer for semantic search and RAG, while transactional source-of-truth data remains in OLTP storage.
Retrieval capabilities
RAG and filtering
Operational trade-offs
Read / Write Path через компоненты
Диаграмма объединяет write и read path с пояснениями: как Qdrant принимает upsert/query, обновляет индексы и возвращает top-k результаты в single-node и distributed режиме.
Read/Write Path Explorer
Интерактивный разбор прохождения vector-запросов через компоненты Qdrant.
Write path
- Клиент отправляет `upsert`/`set-payload` операции в коллекцию Qdrant.
- Запись проходит через WAL, затем попадает в сегменты и индексные структуры.
- В distributed mode изменения расходятся по репликам шарда в рамках настроек консистентности.
- `wait=true` и write consistency политики влияют на момент подтверждения операции клиенту.
Когда выбирать Qdrant
Хорошо подходит
- Semantic search и RAG, где нужно хранить embedding и фильтровать по metadata.
- Hybrid retrieval (dense + sparse), когда важны и семантика, и лексический сигнал.
- Каталоги/контентные системы с tenant/category/date фильтрами и low-latency search.
- Production vector layer с репликацией, snapshot-процессами и контролем latency/recall.
Стоит избегать
- Сценарии с тяжёлыми реляционными join и транзакционной бизнес-логикой уровня OLTP СУБД.
- Чисто аналитические OLAP-нагрузки с массовыми агрегатами по колонночным данным.
- Команды, не готовые к тюнингу ANN-параметров и валидации качества retrieval (recall/precision).
- Системы, где нужен универсальный SQL-движок вместо специализированного vector retrieval слоя.
Практика: DDL и DML
Ниже практические примеры Qdrant API: DDL-операции по созданию/тюнингу коллекций и индексов, а также DML-команды для upsert/query/payload обновлений.
Примеры DDL и DML в Qdrant
DDL управляет коллекциями и индексами, DML работает с точками, payload и vector query.
DDL в Qdrant — это операции над структурой коллекций: схема векторов, шардирование/репликация и payload-индексы.
Создание коллекции под dense + sparse retrieval
PUT /collections/productsОпределяем векторную схему, distributed-параметры и режим хранения payload.
PUT /collections/products
{
"vectors": {
"size": 768,
"distance": "Cosine"
},
"sparse_vectors": {
"text": {}
},
"shard_number": 3,
"replication_factor": 2,
"write_consistency_factor": 1,
"on_disk_payload": true
}Payload index для фильтруемого поиска
PUT /collections/products/indexИндексируем поле category для более предсказуемой latency на фильтрах.
PUT /collections/products/index
{
"field_name": "category",
"field_schema": "keyword"
}Тюнинг HNSW и quantization
PATCH /collections/productsНастраиваем индекс и компрессию под профиль recall/latency/cost.
PATCH /collections/products
{
"vectors": {
"": {
"hnsw_config": {
"m": 32,
"ef_construct": 256
},
"quantization_config": {
"scalar": {
"type": "int8",
"always_ram": true
}
}
}
}
}