Aller au contenu
Source

pgvector — README (filtrage, HNSW, iterative scan 0.8.0)

Un filtre ACL sur HNSW sans iterative_scan peut renvoyer trop peu de résultats, voire aucun ; ce n'est pas une fuite mais une dégradation à traiter.

Confirmée#vector-db#pgvector#ragPublié le 16 sept. 2026Mis à jour le 16 sept. 2026Vérifié le 16 sept. 2026À revérifier le 15 déc. 2026
Organisation
pgvector
Type
GitHub
Fiabilité
Fiabilité haute
Publié
v0.8.6 (README) ; 0.8.0 annoncé sur postgresql.org
Consulté le
16 septembre 2026
Sujets
vector-db, pgvector, rag

Citée par 7 page(s)

Base vectorielle : pgvector, Qdrant et alternativesRAG · Comparaison des bases vectorielles auto-hébergeables pour la Box (filtrage ACL imposé par le moteur, hybride, multi-tenant, licence, exploitation) et recommandation provisoire liée à Q-004.Chunking et embeddingsRAG · Découper les documents en passages exploitables, les étiqueter (dont l'ACL), les vectoriser avec un modèle multilingue sous licence libre, et estimer la mémoire des index.Évaluer le RAGRAG · Mesurer la qualité (fidélité, pertinence, précision et rappel du contexte), l'étanchéité des permissions et la latence, sur un jeu de test par dossier fictif, et boucler sur l'amélioration.RAG : vue d'ensembleRAG · Pipeline documentaire de la Box, de l'ingestion des dossiers à la réponse citée, avec le filtre de permissions au cœur de la recherche.Permissions et confidentialité dans le RAGRAG · Comment garantir qu'un utilisateur ne récupère jamais un passage d'un dossier auquel il n'a pas accès : ACL par chunk, filtre côté serveur, double barrière application + moteur, audit et tests.Recherche, reranking et citationsRAG · Recherche vectorielle, BM25 et fusion RRF ; pré-filtrage par permissions et ses effets sur HNSW ; rerankers ; construction du contexte ; restitution des citations page par page ; garde-fous contre les hallucinations.pgvector vs Qdrant : rappel et latence de la recherche filtrée par ACLExpérimentation · Mesurer la perte de rappel et la latence d'une recherche vectorielle filtrée par dossier_id (10 %, 30 %, 100 % de portée) avec pgvector HNSW (sans et avec iterative_scan, RLS) et Qdrant (payload is_tenant, JWT payload).

Ce que dit la source : licence PostgreSQL. Avertissement clé : « With approximate indexes, filtering is applied after the index is scanned. If a condition matches 10% of rows, with HNSW and the default hnsw.ef_search of 40, only 4 rows will match on average ». Remèdes : index B-tree sur les colonnes de filtre, index partiels, et depuis 0.8.0 « iterative index scans, which will automatically scan more of the index until enough results are found » (hnsw.iterative_scan = strict_order | relaxed_order, hnsw.max_scan_tuples défaut 20 000, hnsw.scan_mem_multiplier). Index performants s'ils tiennent en mémoire ; maintenance_work_mem à la création ; sauvegardes pg_dump, WAL/PITR, réplication.

Ce qu'on en retient : un filtre ACL sur HNSW sans iterative_scan peut renvoyer trop peu de résultats, voire aucun ; ce n'est pas une fuite mais une dégradation à traiter.

Limites : la version exacte diffère selon la page (0.8.6 README vs 0.8.2 annonce postgresql.org) ; recherche hybride BM25 à assembler soi-même (tsvector ou ParadeDB, non vérifié).

content/sources/pgvector-readme.md162 mots