Концептуальная модель предметной области#
Пояснения:
Коллекция (Collection):
Именованный набор точек (векторов с полезной нагрузкой), среди которых можно выполнять поиск. Вектор каждой точки внутри одной коллекции должен иметь одинаковую размерность и сравниваться по единым метрикам расстояний.
Связи: содержит точки, принадлежит кластеру, обладает индексами.
Пример: коллекция «Изображения» с векторами 512D и косинусной метрикой.
Точка (Point):
центральная сущность, с которой работает продукт. Точка представляет собой запись, состоящую из вектора и необязательной полезной нагрузки.
Связи: принадлежит коллекции, индексируется.
Пример: вектор
[0.1, 0.2, ...]с payload{"image_id": 123, "category": "cat"}.
Индекс (Index):
Структура для ускорения поиска. Оптимизирует запросы (например, HNSW для приближенного поиска). Ключевой особенностью является эффективное сочетание векторных и традиционных индексов.
Связи: строится для коллекции.
Пример: HNSW-индеĸс с параметрами
m=16,ef_construction=200.
Запрос (Query)
Операция поиска или фильтрации с целью получения релевантных точек.
Связи: выполняется над коллекцией.
Пример: найти 10 ближайших векторов ĸ
[0.3, 0.5, ...]с фильтром"price < 50".
Кластер (Cluster)
Группа серверов для распределенного хранения. Используется для масштабируемости и отказоустойчивости.
Связи: управляет коллекциями, распределяет нагрузку.
Пример: 3 узла с шардированием данных.
Узел (Node)
Физический/виртуальный сервер в кластере. Хранит часть данных (шарды).
Связи: является частью кластера, управляет шардами.
Пример: сервер
node-1с IP {ip_address}.
Шард (Shard)
Логический раздел данных в узле. Используется для горизонтального масштабирования.
Пример: шард
shard-1хранит точки с ID от 1 до 1 млн.
Реплика (Replica)
Копия шарда для отказоустойчивости и балансировка нагрузки.
Пример: реплика
shard-1-replica-2наnode-2.