System Design Space
Граф знанийНастройки

Обновлено: 24 июня 2026 г. в 17:53

Qdrant: векторная база данных и архитектура

средний

Векторная база данных для семантического и гибридного поиска: коллекции и точки, HNSW, фильтры по атрибутам, шарды, реплики и сценарии генерации с извлечением контекста (RAG).

Qdrant полезно понимать не как магическую векторную базу данных, а как одну из опор слоя извлечения контекста, где качество поиска зависит от HNSW, векторных представлений, фильтров и схемы обновления индекса.

В реальных AI- и поисковых сценариях эта глава помогает проектировать векторное хранилище как часть полноценного контура извлечения контекста: с версионированием моделей, переиндексацией, фильтрацией и компромиссами между качеством, задержкой и стоимостью.

В интервью и инженерных обсуждениях она особенно сильна там, где нужно объяснить, почему векторная база данных не решает поиск по смыслу сама по себе и как она встраивается в генерацию с извлечением контекста (RAG) или семантическую поисковую систему.

Практическая польза главы

Проектирование извлечения

Проектируйте слой извлечения контекста как отдельный контур: векторные представления, фильтры и повторное ранжирование должны работать согласованно.

Жизненный цикл эмбеддингов

Планируйте версионирование моделей векторных представлений и переиндексацию без простоя поиска.

Гибридный контроль качества

Комбинируйте векторные и лексические сигналы, чтобы удерживать точность и полноту выдачи под задачу.

Формулировка рисков

На интервью описывайте компромиссы качества, стоимости и задержки в генерации с извлечением контекста (RAG) и семантическом поиске.

Рамка выбора и редакторский фокус

Фокус главы

векторном поиске, HNSW-индексах и инфраструктуре извлечения контекста

Профиль нагрузки

Начинайте с специализированного запроса: аналитика, поиск, временные ряды, графовые обходы, векторное извлечение или мониторинговые метрики.

Когда выбирать

Выбор оправдан, когда модель индекса или хранения напрямую совпадает с продуктовой задачей и разгружает источник истины.

Граница и риск

Опасность — превратить специализированный слой в универсальную БД и потерять границы консистентности, свежести и владения данными.

Связать дальше

Связывайте главу с источником транзакционных данных, конвейером данных, удержанием данных, компакцией и архитектурой слоя модели чтения.

Источник

Qdrant

Официальный сайт Qdrant: позиционирование векторной базы данных, продуктовые возможности и модели развёртывания.

Открыть сайт

Документация

Qdrant Docs: Overview

Ключевые концепции: коллекции, точки, фильтры по атрибутам, распределённый режим, согласованность и настройка производительности.

Открыть документацию

Обычный полнотекстовый индекс отвечает на запрос по словам, но не по смыслу — и здесь появляется Qdrant, векторная база данных для семантического поиска и . В системном дизайне её держат отдельным слоем извлечения рядом с транзакционным источником истины: Qdrant хранит векторные представления, фильтрует выдачу по атрибутам и возвращает ближайшие результаты с низкой задержкой. Цена решения — ещё одно хранилище в контуре, которое нужно реплицировать, согласовывать и держать в синхронизации с источником истины.

Чтобы решить, где Qdrant уместен, стоит держать в голове несколько опор. Со стороны данных это с , , и . Со стороны архитектуры за качество и стоимость отвечают , , , , репликация и качество выдачи по и .

История и контекст

2021Проект

Появление Qdrant

Идея выросла из задачи поиска похожих неструктурированных объектов: после оценки готовых библиотек команда начала собственный движок векторного поиска на Rust.

6 апреля 2021v0.2.0

Первые возможности базы

Ранний релиз добавляет индексирование полезной нагрузки для числовых и строковых полей — первые практические элементы фильтруемого векторного поиска.

8 июня 2022v0.8.0

Появление распределённого режима

После раннего одноузлового этапа Qdrant получает режим распределённого кластера с шардированием и репликами для промышленных нагрузок.

8 февраля 2023v1.0.0

Стабилизация API и промышленное внедрение

Стабилизируется программный интерфейс (API) и набор средств разработки (SDK); Qdrant всё чаще ставят как слой извлечения контекста в системах машинного обучения (AI/ML).

8 декабря 2023v1.7.0

Разреженные векторы и управляемое шардирование

Появляются разреженные векторы и более гибкое управление распределением данных между шардами.

1 июля 2024v1.10.0

Мультивекторы и более гибкое извлечение контекста

Появляется поддержка мультивекторов для сценариев, где одна точка хранит несколько векторных представлений.

17 ноября 2025v1.16.0

ACORN и улучшение строгой фильтрации

Строгая фильтрация при обходе графа HNSW (иерархический навигируемый малый мир) становится точнее — это важно для поиска с большим числом условий.

Ключевые архитектурные элементы

Коллекции, точки и полезная нагрузка

Единица хранения — точка: вектор плюс атрибуты полезной нагрузки. Атрибуты решают, можно ли отфильтровать выдачу по арендатору или категории, не прогоняя поиск по всей коллекции.

Фильтруемый векторный поиск

Смысловая близость без бизнес-ограничений вернёт релевантный, но недопустимый результат. Поэтому обход графа HNSW (иерархический навигируемый малый мир) и фильтрация по атрибутам работают вместе, а не по очереди.

Надёжность хранения и раскладка данных

Запись защищают журнал предзаписи (WAL) и сегменты, а хранение на диске, отображение в память и квантование сдвигают баланс между стоимостью памяти и задержкой — выигрыш на одном плече оплачивается на другом.

Кластерный режим

Шарды и реплики добавляют пропускную способность, но порядок записи и уровень согласованности придётся выбрать вручную: жёстче гарантии — выше задержка, мягче — риск отдать устаревшую выдачу.

Векторная модель данных и фильтрация

Модель данных в Qdrant — это уже половина решения о задержке и стоимости. Плотные и разреженные векторы, мультивекторы, именованные векторы, фильтры по атрибутам и параметры хранения определяют, что именно ляжет в память, а что останется на диске.

Модель данных Qdrant: больше, чем хранилище векторов

Qdrant хранит точки с векторами и атрибутами, поддерживает плотные, разреженные и мультивекторные схемы, а также фильтруемый поиск.

Почему Qdrant — это не только поиск по одному вектору

  • Точка может содержать векторы и структурированные атрибуты для фильтрации и бизнес-условий.
  • Плотные и разреженные представления можно комбинировать в гибридных сценариях поиска.
  • Именованные векторы и мультивекторы позволяют хранить несколько пространств представления для одного объекта.
  • Индексы и параметры хранения на диске или с квантованием помогают управлять задержкой и стоимостью.

Плотные векторы

Классический поиск ближайших соседей по векторному представлению фиксированной размерности, например 768 или 1024.

Ключевые элементы

схема векторов коллекцииобновление точекпервые k результатовметрика: Cosine/Dot/Euclid

Типичные сценарии

  • семантический поиск
  • извлечение контекста для RAG
  • рекомендации

Пример

"vectors": { "size": 768, "distance": "Cosine" }

Архитектура Qdrant по слоям

Типовой контур Qdrant в продуктовой системе складывается из нескольких слоёв, и сбой в любом из них бьёт по выдаче: программный интерфейс (API), приём данных, коллекции и шарды, векторные индексы, фильтры, журнал предзаписи (WAL), сегменты и кластерная эксплуатация.

Клиенты и API
HTTP + gRPCSDKOpenAPIпакетное обновление
переход слоя
Коллекции и шарды
коллекцииточкимаршрутизация шардовкоэффициент репликации
переход слоя
Векторные индексы
HNSWразреженный индексиндекс атрибутовфильтруемый поиск
переход слоя
Хранение
WALсегментыдиск / memmapверсии обновлений
переход слоя
Кластер и согласованность
Raft для топологиисогласованность чтенияфактор записипорядок записи
переход слоя
Эксплуатация
снимкиквантованиеоптимизатормониторинг

системный взгляд

Qdrant обычно работает как отдельный слой векторного поиска рядом с транзакционным источником истины.

Возможности поиска

плотные векторыразреженные векторымультивекторы и именованные векторы

RAG и фильтры

фильтры по атрибутамгибридные запросыранжирование с учётом атрибутов

Цена эксплуатации

полнота против задержкистоимость записи в репликибаланс памяти и диска

Пути записи и чтения через компоненты

Путь записи и путь чтения сходятся в одном индексе, поэтому их стоит разбирать вместе: как Qdrant принимает обновления и поисковые запросы, перестраивает индексы и возвращает ближайшие результаты — и чем это отличается на одном узле и в распределённом кластере.

Пути записи и чтения

Интерактивный разбор того, как операции с векторами проходят через компоненты Qdrant.

1
Обновление от клиента
points wait=true
2
WAL
журнал записи
3
Обновление сегмента
точки и атрибуты
4
Обновление индексов
HNSW / атрибуты
5
Подтверждение реплик
согласованность
Путь записи: обновление проходит через журнал WAL и сегменты, обновляет индексы и подтверждается по настройкам реплик и согласованности.

Путь записи

  1. Клиент отправляет операции `upsert`/`set-payload` в коллекцию Qdrant.
  2. Запись проходит через WAL, затем попадает в сегменты и индексные структуры.
  3. В распределённом режиме изменения расходятся по репликам шарда с учётом настроек согласованности.
  4. `wait=true` и настройки согласованности записи влияют на момент подтверждения операции клиенту.

Когда выбирать Qdrant

Хорошо подходит

  • Семантический поиск и генерация с извлечением контекста (RAG): нужно хранить векторные представления и тут же отсекать выдачу фильтрами по атрибутам.
  • Гибридный поиск, где одной смысловой близости мало и решает совместный вес смыслового и лексического сигнала.
  • Каталоги и контентные системы, в которых фильтр по арендатору, категории и дате обязателен, а не опционален.
  • Промышленный слой векторного поиска: репликация, снимки состояния и явный контроль задержки и полноты выдачи под нагрузкой.

Стоит избегать

  • Нагрузки на тяжёлых реляционных соединениях (JOIN) и транзакционной бизнес-логике — это работа основной СУБД, а не векторного слоя.
  • Чисто аналитические запросы с массовыми агрегатами по колоночным данным: здесь выиграет колоночное хранилище, а не поиск ближайших соседей.
  • Команда не готова настраивать параметры графа HNSW (иерархический навигируемый малый мир) и сверять выдачу по точности и полноте — без этого качество поиска остаётся непредсказуемым.
  • Сценарии, где нужен универсальный SQL-движок (язык структурированных запросов), а не специализированный слой векторного поиска.

Практика: DDL и DML

Дальше — практические примеры программного интерфейса (API) Qdrant: операции над структурой коллекций и индексов, а также команды для обновления точек, поисковых запросов и изменения полезной нагрузки.

Примеры DDL и DML в Qdrant

DDL управляет коллекциями и индексами, DML работает с точками, атрибутами и поисковыми запросами.

DDL в Qdrant — это операции над структурой коллекций: схема векторов, шардирование, репликация и индексы атрибутов.

Создание коллекции под плотный и разреженный поиск

PUT /collections/products

Определяем векторную схему, параметры распределения и режим хранения атрибутов.

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
}

Индекс атрибутов для фильтруемого поиска

PUT /collections/products/index

Индексируем поле category, чтобы фильтры работали с более предсказуемой задержкой.

PUT /collections/products/index
{
  "field_name": "category",
  "field_schema": "keyword"
}

Настройка HNSW и квантования

PATCH /collections/products

Настраиваем индекс и сжатие под профиль полноты, задержки и стоимости.

PATCH /collections/products
{
  "vectors": {
    "": {
      "hnsw_config": {
        "m": 32,
        "ef_construct": 256
      },
      "quantization_config": {
        "scalar": {
          "type": "int8",
          "always_ram": true
        }
      }
    }
  }
}

Источники

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки