pgvector ist eine quelloffene Erweiterung für PostgreSQL, die Vektordatenbank-Funktionen direkt in die Datenbank bringt. Damit lassen sich Embeddings speichern und per Ähnlichkeitssuche abfragen – ohne separate Such-Infrastruktur.
Erste Schritte
CREATE EXTENSION vector;
CREATE TABLE artikel (id serial PRIMARY KEY, inhalt text, vektor vector(1536));
CREATE INDEX ON artikel USING hnsw (vektor vector_cosine_ops);
SELECT id FROM artikel ORDER BY vektor <=> '[...]' LIMIT 5;
Die Distanzoperatoren: <-> für euklidische Distanz (L2), <#> für das Skalarprodukt und <=> für die Kosinus-Ähnlichkeit.
Indizes und Entwicklung
pgvector unterstützt zwei Index-Typen: IVFFlat (ab Version 0.4.0) und HNSW (ab 0.5.0). Die Erweiterung wurde von Andrew Kane entwickelt, erschien 2021 und ist inzwischen bei vielen Hostern Standard – etwa bei Supabase, Neon, AWS RDS, Google AlloyDB und Azure Database for PostgreSQL.
Warum pgvector?
Vorteile: kein zusätzlicher Dienst, ACID-Transaktionen, SQL-Abfragen kombinieren Vektorsuche mit relationalen Filtern, und die semantische Suche läuft in derselben Datenbank wie die Fachdaten.
Verwandte Grundlagen: HNSW, Vektordatenbank, Hybrid Search.