Vector Database — БД, оптимизированная для хранения + поиска векторов (embeddings) через ANN (Approximate Nearest Neighbor) алгоритмы. HNSW, IVF, DiskANN — common indexing. Поддерживает hybrid search (vector + keyword), metadata filtering, upsert/delete. 2026 leaders: Qdrant (Rust open-source, fastest), Pinecone (managed, expensive), Weaviate (open hybrid search), Milvus (CNCF), pgvector (Postgres extension, простой).
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — проверка HTTP-заголовков: результат мгновенно, без регистрации.
# Qdrant: create collection + insert + search
curl -X PUT http://localhost:6333/collections/docs \
-H 'Content-Type: application/json' \
-d '{"vectors": {"size": 1536, "distance": "Cosine"}}'
# Insert
curl -X PUT http://localhost:6333/collections/docs/points \
-d '{"points": [{"id": 1, "vector": [0.1, 0.2, ...], "payload": {"text": "..."}}]}'
# Search top-5
curl -X POST http://localhost:6333/collections/docs/points/search \
-d '{"vector": [0.1, 0.2, ...], "limit": 5}'Векторная база данных — это специализированная система управления данными, предназначенная для хранения, обработки и поиска векторных представлений объектов, таких как текст, изображения или звуковые записи. В отличие от традиционных реляционных баз данных, которые работают с табличными данными, векторные базы данных оптимизированы для выполнения операций с многомерными векторными данными, что делает их особенно полезными в задачах машинного обучения и искусственного интеллекта.
Векторные базы данных используют векторные представления, которые представляют собой набор чисел, отражающих характеристики объектов. Эти векторы можно создавать с помощью различных алгоритмов, таких как Word2Vec, FastText или BERT для текстов, а также CNN для изображений. Векторные базы данных обеспечивают эффективное хранение и быстрое извлечение данных с использованием методов, таких как:
Рассмотрим практический пример использования векторной базы данных для поиска похожих изображений. Для начала, необходимо создать векторные представления изображений с помощью предобученной модели глубокого обучения, такой как ResNet. После этого полученные векторы можно сохранить в векторной базе данных, например, в Milvus или Pinecone.
import torch
from torchvision import models, transforms
from PIL import Image
# Загружаем предобученную модель
model = models.resnet50(pretrained=True)
model.eval()
# Функция для преобразования изображения в вектор
def get_vector(image_path):
image = Image.open(image_path)
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
input_tensor = preprocess(image)
input_batch = input_tensor.unsqueeze(0)
with torch.no_grad():
output = model(input_batch)
return output.numpy()
# Получаем вектор для изображения
vector = get_vector('image.jpg')После того как векторы изображений получены, они могут быть загружены в векторную базу данных. Например, с помощью Milvus можно использовать следующий код:
from pymilvus import Collection, connections
# Устанавливаем соединение с Milvus
connections.connect(host='localhost', port='19530')
# Создаем коллекцию
collection = Collection('images')
# Добавляем векторы в коллекцию
collection.insert([vector])Теперь, когда векторы загружены, можно выполнять запросы для поиска изображений, похожих на заданное.
pgvector: simplicity (ваш уже Postgres), до ~1M vectors. Dedicated: лучше при >10M, hybrid search, HA. Начинайте с pgvector, migrate если upgrade нужен.
Qdrant: open source, self-host, Rust быстрый, $0 cost. Pinecone: managed, no ops, $70+/mo. Enterprise features: Qdrant Cloud или Pinecone.
<a href="/ping">Enterno Ping</a> для порта 6333 (Qdrant). <a href="/monitors">Monitors</a> для /health endpoint.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.