pgvector + index HNSW
PostgreSQL 🔴 SeniorDéfinition
pgvector (version 0.8.6) est l'extension PostgreSQL de référence pour stocker des vecteurs (type vector, jusqu'a 16 000 dimensions) et effectuer des recherches par similarité. Son index HNSW (Hierarchical Navigable Small World) offre de meilleures performances de requête que l'index IVFFlat, au prix d'un temps de construction plus long.
Analogie
HNSW construit un réseau de raccourcis a plusieurs échelles, comme un plan d'autoroutes puis de routes locales, pour rejoindre le point le plus proche plus vite qu'en parcourant la carte a plat (IVFFlat).
Exemple de code
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(768)
);
CREATE INDEX ON items USING hnsw (embedding vector_cosine_ops);
SELECT id FROM items
ORDER BY embedding <=> '[0.1, 0.2]' LIMIT 5;
Cas d'usage
Recherche de similarité sémantique (RAG, recommandation) directement en SQL, sans base vectorielle dédiée séparée.
Anti-pattern
Construire un index HNSW sur une table qui reçoit encore des inserts massifs : privilégier IVFFlat en phase de chargement puis basculer vers HNSW.
Termes liés
Sources
Fiche mise à jour le 2026-09-27