Vektor-Datenbanken sind das Fundament moderner RAG-Systeme. Sie speichern Daten als hochdimensionale Vektoren (Embeddings) und ermöglichen blitzschnelle Ähnlichkeitssuchen — die Grundlage dafür, dass AI-Modelle auf Ihr Unternehmenswissen zugreifen können.
Embeddings sind numerische Repräsentationen von Text, Bildern oder anderen Daten in einem hochdimensionalen Raum. Ähnliche Inhalte haben ähnliche Vektoren:
"Künstliche Intelligenz" → [0.23, -0.45, 0.89, 0.12, ...] (1536 Dimensionen)
"Machine Learning" → [0.25, -0.42, 0.87, 0.15, ...] (sehr ähnlich!)
"Kuchenrezept" → [-0.67, 0.33, -0.12, 0.78, ...] (ganz anders)
Die Kernfunktion einer Vektor-Datenbank: Finde die N ähnlichsten Vektoren zu einem Query-Vektor.
| Metrik | Beschreibung | Wann nutzen |
|---|---|---|
| Cosine Similarity | Winkel zwischen Vektoren (0-1) | Text-Embeddings (Standard) |
| Euclidean Distance | Geometrischer Abstand | Wenn Magnitude wichtig ist |
| Dot Product | Skalarprodukt | Normalisierte Embeddings |
Exakte Nearest-Neighbor-Suche ist bei Millionen Vektoren zu langsam. Approximate Nearest Neighbor (ANN) Algorithmen liefern 95-99% Genauigkeit bei dramatisch besserer Performance:
Layer 3: [ A ] ─────────────── [ B ]
Layer 2: [ A ] ──── [ C ] ──── [ B ]
Layer 1: [ A ] ── [D] ── [ C ] ── [E] ── [ B ]
Layer 0: [A] [F] [D] [G] [C] [H] [E] [I] [B]
| Datenbank | Typ | Stärken | Schwächen | Best für |
|---|---|---|---|---|
| Pinecone | Managed Cloud | Zero-Ops, skaliert automatisch | Vendor Lock-in, Kosten | Teams ohne DB-Expertise |
| Weaviate | Open Source | Hybrid Search, GraphQL API | Komplexeres Setup | Hybrid-Search-Szenarien |
| Chroma | Open Source | Einfachster Einstieg, embedded | Nicht für große Scale | Prototypen, kleine Projekte |
| Qdrant | Open Source | Rust-Performance, Filtering | Kleineres Ökosystem | Performance-kritische Apps |
| pgvector | PostgreSQL Extension | Nutzt bestehende Postgres-Infra | Weniger spezialisiert | Teams mit PostgreSQL-Stack |
-- Extension aktivieren
CREATE EXTENSION vector;
-- Tabelle mit Vektor-Spalte
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT,
embedding VECTOR(1536)
);
-- Index für schnelle Suche
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
-- Ähnlichkeitssuche
SELECT content, 1 - (embedding <=> query_embedding) AS similarity
FROM documents
ORDER BY embedding <=> query_embedding
LIMIT 5;
Praxis-Tipp: Für Prototypen nutzen Sie Chroma (einfachster Start) oder pgvector (wenn Sie bereits PostgreSQL haben). Für Production mit >1M Dokumenten evaluieren Sie Pinecone (managed) oder Qdrant (self-hosted). Die Wahl der Datenbank ist weniger wichtig als die Qualität Ihrer Embeddings und Chunks.
Was ist der Hauptvorteil von HNSW gegenüber exakter Nearest-Neighbor-Suche?