Étape 05 sur 22
Bases de données vectorielles
Stocker les embeddings et trouver les plus proches en quelques millisecondes. C'est la mémoire que votre application interroge à chaque question. Le coût, le filtrage et l'exploitation comptent plus que la vitesse brute.
Par Sheela · Vérifié le 23 oct. 2026 · Notre méthode d’évaluation
Comment choisir
- Déjà sur Postgres avec un volume modeste : pgvector vous laisse une seule base à gérer.
- Filtrage intensif, recherche hybride ou grande échelle : un moteur dédié comme Qdrant, Weaviate ou Milvus.
- Aucun serveur à gérer : un service hébergé comme Pinecone, contre un coût mensuel.
Ce qu’il faut regarder
Les questions qui départagent les options, par ordre d’importance.
01
Qualité de la recherche filtrée
Les vraies requêtes sont presque toujours filtrées par autorisations, identifiant de tenant, date ou type de document, et les résultats doivent rester pertinents une fois le filtre appliqué. Les moteurs qui filtrent après la recherche vectorielle peuvent renvoyer trois résultats quand vous en demandiez dix, ou rater sans prévenir la meilleure correspondance. Qdrant ajoute des arêtes de graphe pour les champs de payload indexés, afin que le parcours filtré reste connecté ; pgvector a besoin de scans itératifs (version 0.8.0 et ultérieures) ou d'index partiels. Testez avec votre filtre réel le plus sélectif, pas avec une démo sans filtre.
02
Recherche hybride : vecteurs plus mots-clés
Les vecteurs ratent les noms, les identifiants et les termes exacts comme les codes produit et les messages d'erreur ; la recherche par mots-clés (BM25) les attrape. La recherche hybride exécute les deux et combine les scores. Weaviate, Qdrant, Milvus, LanceDB et turbopuffer le font dans un seul moteur ; Pinecone propose des index sparse-dense ou un filtre plein texte ; avec pgvector, vous combinez vous-même la recherche plein texte de Postgres en SQL. Vérifiez si vous pouvez régler la pondération ou utiliser la reciprocal rank fusion.
03
Rappel contre latence
La recherche approximative échange de la précision contre de la vitesse : le rappel est la part des vrais plus proches voisins qu'elle retrouve, et vous le voulez au temps de réponse dont vous avez besoin, pas à n'importe quelle vitesse. HNSW, un graphe en couches, offre un rappel élevé mais veut l'index en RAM ; IVF regroupe les vecteurs en clusters et cherche dans les clusters les plus proches ; les index sur disque (DiskANN de Milvus, HFresh de Weaviate, SPFresh ou SPANN de turbopuffer et de Chroma Cloud) gardent l'essentiel des données sur SSD ou en stockage objet. La quantification réduit les vecteurs de 4 à 32 fois, généralement avec une étape de renotation pour retrouver la précision. Sur les benchmarks : ANN-Benchmarks, mené par les universitaires Martin Aumueller, Erik Bernhardsson et Alec Faitfull, trace le rappel en fonction des requêtes par seconde pour des requêtes isolées sur de petits jeux de données publics ; il compare des algorithmes d'index, pas des bases de données, et ignore filtrage, écritures et exploitation. VectorDBBench est maintenu par Zilliz, l'entreprise derrière Milvus, et ajoute la latence p99, des cas filtrés et en streaming et le coût par requête. Comparez QPS et p99 au même rappel, et traitez tout benchmark d'un fournisseur sur son propre produit comme une affirmation à reproduire.
04
Capacité de la charge de travail
Dimensionnez le travail avant de choisir : nombre de vecteurs prévu, dimensions, requêtes simultanées et fréquence de changement des données. Vecteurs fois dimensions fois octets donne la mémoire brute qu'exige un index en mémoire. Encore, qui vend de l'hébergement Postgres, place pgvector au niveau de Pinecone en dessous d'environ cinq millions de vecteurs et estime qu'il exige un réglage soigneux au-delà ; Chroma convient des prototypes jusqu'à quelques dizaines de millions ; la FAQ de LanceDB indique que la bibliothèque open source gère des millions de vecteurs sur un seul nœud ; Milvus et turbopuffer sont conçus pour des milliards.
05
Mises à jour et suppression
Vérifiez à quelle vitesse insertions, modifications et suppressions deviennent consultables. Certains index absorbent immédiatement les nouvelles données, d'autres mettent les écritures en tampon ou exigent une reconstruction ; les écritures de turbopuffer vont en stockage objet en 248 ms au p90 pour un upsert de 512 KB. La suppression compte pour la conformité : quand un utilisateur retire un document, il doit cesser rapidement d'apparaître dans les résultats, et les index par tenant simplifient la suppression d'un client entier.
06
Sécurité et isolation
Cherchez le contrôle d'accès, le chiffrement au repos et en transit, et une isolation des tenants qui tient la route. Si les autorisations sont appliquées par un filtre de métadonnées, ce filtre doit être fiable à chaque requête, ce qui est une raison de plus de tester le rappel filtré. turbopuffer propose des espaces de noms illimités et des clés gérées par le client en entreprise ; Qdrant peut désigner un champ comme clé de tenant ; Weaviate a un multi-tenant natif, même si sa fonction d'espaces de noms exige désormais une licence payante ; avec pgvector, vous partitionnez par tenant ou utilisez la sécurité au niveau des lignes.
07
Exploitation
Sauvegardes, restauration, surveillance et montée en charge coûtent souvent plus que la licence. pgvector n'ajoute rien de nouveau à faire tourner si vous avez déjà Postgres. Qdrant est livré en un seul binaire ; Milvus à grande échelle exige Kubernetes et une équipe plateforme. Chroma et LanceDB tournent dans votre processus. Pinecone et turbopuffer sont uniquement gérés, avec une option dans votre propre cloud pour les acheteurs entreprise. La licence décide de votre porte de sortie : Apache 2.0 (Qdrant, Milvus, Chroma, LanceDB) et la licence PostgreSQL (pgvector) permettent d'auto-héberger librement, Weaviate est open core depuis septembre 2026, et les services propriétaires impliquent d'exporter et de réindexer pour partir.
08
Coût total
Comptez index, stockage des métadonnées, requêtes et mises à jour, et demandez-vous s'il vous faut seulement une base séparée. Les services gérés facturent dans des unités différentes : Pinecone en unités de lecture, unités d'écriture et GB stockés, Weaviate Cloud en dimensions de vecteurs stockées, turbopuffer à l'usage au-delà d'un minimum mensuel, Chroma Cloud selon les données écrites, stockées et interrogées. Un chatbot surtout en lecture et un pipeline d'indexation surtout en écriture peuvent classer les mêmes fournisseurs dans des ordres opposés : modélisez vos propres volumes sur chaque calculateur et face à une instance que vous feriez tourner vous-même.
Quelle approche pour quelles données
Chaque type de contenu demande des modèles différents. Beaucoup de systèmes en utilisent plusieurs et routent selon le type de données.
| Vos données | Approche | Commencer par |
|---|---|---|
| Déjà sur Postgres, sous environ 10 millions de vecteurs | Ajoutez les vecteurs à la base que vous exploitez ; les filtres sont du SQL et il n'y a rien de nouveau à faire tourner. | pgvector |
| SaaS multi-tenant avec autorisations par utilisateur | Choisissez une recherche filtrée solide ou un espace de noms par tenant, et testez le rappel avec les filtres d'autorisation. | Qdrant, turbopuffer, Weaviate |
| Gros besoins en mots-clés : noms, codes, identifiants | Choisissez un moteur avec recherche hybride BM25 et vecteurs intégrée. | Weaviate, Qdrant, Milvus |
| Des centaines de millions à des milliards de vecteurs | Utilisez un moteur distribué ou à base de stockage objet conçu pour cette échelle. | Milvus, turbopuffer |
| Pas d'équipe d'exploitation, trafic imprévisible | Utilisez un service entièrement géré et plafonnez les dépenses avec les limites de l'offre. | Pinecone, turbopuffer |
| Sur l'appareil, notebooks ou agents locaux | Faites tourner une bibliothèque embarquée dans le processus, sans serveur. | Chroma, LanceDB |
| Données multimodales dans un data lake | Gardez les embeddings à côté des fichiers bruts et interrogez-les sur place. | LanceDB, Milvus |
Comment le tester sur vos propres données
- Constituez 50 à 100 questions représentatives et marquez les passages corrects pour chacune.
- Incluez des cas difficiles : abréviations, identifiants et codes exacts, questions ambiguës et documents à accès restreint.
- Mesurez le Recall@k : la fréquence à laquelle les passages corrects apparaissent dans les k premiers résultats.
- Mesurez la qualité du classement, par exemple le NDCG@10 ou le MRR, pour que le bon passage soit près du haut, pas seulement présent.
- Mesurez la latence p95 avec une concurrence réaliste et vos vrais filtres activés.
- Ajoutez le coût total : indexation, stockage, requêtes et mises à jour au volume prévu.
- Vérifiez la qualité finale des réponses, et évaluez tout le pipeline (modèle d'embedding, base de données, reranker et LLM) ensemble, pas la base de données seule.
Ce qui distingue les options
Deux choix se confondent facilement. Le modèle d'embedding décide de ce qui compte comme similaire ; la base vectorielle décide de l'efficacité avec laquelle vous stockez, filtrez et retrouvez ces embeddings. Évaluez-les séparément, puis testez-les ensemble sur vos propres données. Et avant d'ajouter un nouveau système, regardez la base que vous exploitez déjà : si sa recherche vectorielle répond à vos besoins de recherche et de filtrage, vous n'en avez peut-être pas besoin d'une autre.
Les bases vectorielles se répartissent en cinq familles. Une extension Postgres (pgvector) place les embeddings dans une table ordinaire : les filtres sont du SQL, les données restent dans les mêmes transactions et sauvegardes, et il n'y a rien de nouveau à faire tourner ; c'est le choix par défaut pour quelques millions de vecteurs. Les moteurs dédiés (Qdrant, Weaviate, Milvus) sont des serveurs séparés conçus uniquement pour la recherche : ils gèrent le filtrage intensif, la recherche hybride mots-clés et vecteurs, la quantification et une plus grande échelle, au prix d'un système de plus à exploiter. Qdrant est le plus simple à faire tourner, Weaviate mène sur la recherche hybride et l'embedding intégré, et Milvus est conçu pour répartir des milliards de vecteurs sur de nombreuses machines.
Les bibliothèques embarquées (Chroma, LanceDB) tournent dans votre application comme SQLite, sans serveur : idéales pour les prototypes, les notebooks, les applications locales et les agents, plus faibles face à de nombreux utilisateurs simultanés. Les services entièrement gérés (Pinecone, turbopuffer) suppriment toute exploitation et facturent à l'usage ; Pinecone garde les index chauds, tandis que turbopuffer garde les données en stockage objet, ce qui est moins cher à très grande échelle mais plus lent sur les requêtes à froid. Les moteurs de recherche avec prise en charge des vecteurs (Elasticsearch, OpenSearch) et les bases de graphes comme Neo4j stockent aussi des vecteurs, ce qui a du sens si vous les utilisez déjà pour la recherche par mots-clés ou les relations, mais ils ne sont pas traités ici.
8 outils comparés
Classés selon notre note. Ouvrez un avis pour voir les sources, les prix et le verdict complet.
| Outil | Note | Notre verdict | Idéal pour | Prix |
|---|---|---|---|---|
| Qdrantdépôt | 4.7/5 | La recherche vectorielle filtrée faite correctement fait de Qdrant la base de données open source à battre pour le RAG de production, tant que quelqu'un verrouille un serveur qui se livre ouvert. | Les équipes qui font tourner du RAG ou de la recherche de production ayant besoin de requêtes vectorielles filtrées rapides. | Gratuit et open source sous la licence Apache 2.0. Qdrant Cloud a un cluster gratuit de 1 Go, puis une facturation à l'usage ; Premium, Hybrid et Private Cloud sont tarifés par les commerciaux. |
| pgvectordépôt | 4.6/5 | Pour la plupart des équipes déjà sur Postgres, une base de données vectorielle dédiée est une infrastructure supplémentaire que pgvector rend inutile. | Les équipes déjà sur Postgres qui construisent du RAG ou de la recherche sémantique sur quelques millions de vecteurs. | Gratuit et open source sous la licence PostgreSQL. Le seul coût est l'instance Postgres que vous faites déjà tourner, ou une plus grande. |
| Milvusdépôt | 4.4/5 | Bâtie pour des milliards de vecteurs et tarifée en effort opérationnel ; en dessous de quelques centaines de millions, c'est plus de base de données que la plupart des équipes n'en ont besoin. | Les équipes plateforme qui font tourner la recherche vectorielle à des centaines de millions à des milliards de vecteurs. | Gratuit et open source sous Apache 2.0. Zilliz Cloud est le service managé : palier gratuit (5 Go, cinq collections), Dedicated à partir de 63 $, 16 $ ou 5 $ par million de vecteurs de 768 dimensions par mois (performance, capacité ou par paliers), Enterprise à partir de 197 $ par mois, Business Critical sur devis. |
| Pineconeoutil | 4.2/5 | Pinecone supprime presque tout le travail d'exploitation de la recherche vectorielle et le facture à chaque lecture, ce qui convient bien mieux à une petite équipe qu'à un index de production très sollicité. | Les équipes sans personnel d'exploitation de bases de données qui veulent une recherche vectorielle gérée et acceptent une facturation à l'usage. | Starter gratuit (2 GB, 1M de read units par mois, AWS us-east-1 uniquement). Builder à 20 $ par mois forfaitaire avec quotas stricts. Standard avec un minimum de 50 $ par mois, puis 0,33 $ par GB et par mois de stockage, 16 $ à 18 $ par million de read units, 4 $ à 4,50 $ par million de write units. Enterprise avec un minimum de 500 $ par mois. |
| Weaviatedépôt | 4.2/5 | La recherche hybride mots-clés-et-vecteur est encore le meilleur argument de Weaviate, mais ses plus récentes fonctions opérationnelles se trouvent désormais derrière une clé de licence. | Les équipes qui construisent de la recherche ou du RAG où les mots-clés exacts et la similarité sémantique comptent tous deux. | Le cœur est BSD-3-Clause ; certaines fonctions entreprise ont besoin d'une clé de licence payante. Weaviate Cloud : Free (100 000 objets), Flex au paiement à l'usage avec un minimum de 45 $/mois, Premium à partir de 400 $/mois sur un contrat prépayé. |
| turbopufferoutil | 4.2/5 | turbopuffer est la base de données vectorielle à battre si votre produit compte des millions d'index séparés et pour la plupart inactifs, à condition d'accepter que la première recherche sur un index froid prenne environ une seconde. | Les équipes qui construisent des produits d'IA multi-locataires avec de nombreux index séparés ou des milliards de vecteurs et ne veulent aucun serveur à exploiter. | Launch avec un usage minimum de 16 $ par mois ; Scale avec un minimum de 256 $ par mois (SSO, BAA HIPAA) ; Enterprise à partir de 4 096 $ par mois avec une majoration d'usage de 35 % (BYOC, mono-locataire, SLA de 99,95 %). Stockage jusqu'à 0,33 $ par GB, écritures jusqu'à 2 $ par GB, requêtes jusqu'à 1 $ par PB interrogé. Pas de niveau gratuit. |
| Chromadépôt | 4.1/5 | Rapide à embarquer et bon marché à héberger pour du RAG à forte lecture, même si rien n'a été tagué depuis mai 2026. | Les développeurs qui prototypent du RAG ou font tourner une recherche vectorielle de taille petite à moyenne. | Gratuit et open source sous Apache 2.0. Chroma Cloud : Starter 0 $ plus usage avec 5 $ de crédits ; Team 250 $/mois plus usage ; Enterprise sur mesure. Écritures 2,50 $/Gio, stockage 0,33 $/Gio-mois. |
| LanceDBdépôt | 4.0/5 | Quand vos embeddings vivent à côté d'images, de vidéos ou de données d'entraînement, LanceDB supprime entièrement la base de données séparée, même si la recherche multi-utilisateurs intensive n'est pas ce pour quoi la bibliothèque gratuite est bâtie. | Les équipes qui travaillent avec des données multimodales ou d'entraînement et veulent la recherche vectorielle sans faire tourner de serveur. | Gratuit et open source sous Apache 2.0. LanceDB Enterprise est vendu sur engagements annuels ; l'AWS Marketplace liste un engagement de 60 000 $ sur 12 mois, avec des offres privées sur devis. |
Côte à côte
Les caractéristiques qui comptent pour cette étape. Vérifiées le 23 oct. 2026 ; confirmez-les sur le site du fournisseur avant de vous engager.
| Outil | Type | Licence | Types d'index | Recherche hybride | Options d'hébergement | Échelle idéale |
|---|---|---|---|---|---|---|
| Qdrant | Moteur dédié (Rust) | Apache 2.0 | HNSW, index inversé sparse ; TurboQuant/BQ/PQ | Oui, sparse + dense en une seule requête | Auto-hébergement, Qdrant Cloud, Edge | Des millions à des centaines de millions |
| pgvector | Extension Postgres | Licence PostgreSQL | HNSW, IVFFlat ; half, binaire, sparse | Via le plein texte de Postgres en SQL | Tout Postgres, la plupart des services gérés | Quelques millions de vecteurs (environ 5M selon Encore) |
| Milvus | Moteur distribué (Go/C++) | Apache 2.0 | HNSW, IVF, DiskANN, SCANN, flat | Oui, BM25 + sparse + dense | Auto-hébergement (Kubernetes), Zilliz Cloud | Des centaines de millions à des milliards |
| Pinecone | Service entièrement géré | Propriétaire | Non publié | Sparse-dense ou filtre plein texte | Serverless ; BYOC sur Enterprise | Toute échelle ; le coût croît avec les lectures |
| Weaviate | Moteur dédié (Go) | Cœur BSD-3 + fonctions commerciales | HNSW, flat, dynamique, HFresh | Oui, BM25 + vecteurs, réglable | Auto-hébergement, Weaviate Cloud | Non publié |
| turbopuffer | Géré, à base de stockage objet | Propriétaire | SPFresh + quantification binaire RaBitQ | Oui, BM25 + vecteurs | Multi-tenant, mono-tenant, BYOC | Des milliards de vecteurs, de nombreux tenants |
| Chroma | Bibliothèque embarquée ou serveur | Apache 2.0 | HNSW (nœud unique), SPANN (Cloud) | Plein texte à côté des vecteurs | Dans le processus, serveur, Chroma Cloud | Des prototypes à quelques dizaines de millions |
| LanceDB | Bibliothèque embarquée (fichiers Lance) | Apache 2.0 | IVF (PQ/SQ/RQ), IVF_HNSW | Plein texte BM25 + vecteurs | Dans le processus, sur disque ou S3 ; Enterprise | Applications locales ; des millions de vecteurs par nœud |
Connectez-le à votre agent
Des serveurs MCP qui permettent à des assistants comme Claude, ChatGPT et Cursor d’utiliser directement ces outils.
Où s’insère cette étape
- Discuter avec vos documents : nous commencerions par Qdrant.
- Agent de service client : nous commencerions par pgvector.
- Agent de code : nous commencerions par LanceDB.
- Recherche et graphe de connaissances : nous commencerions par Weaviate.
- Assistant à mémoire longue : nous commencerions par Qdrant.
- Pipeline de génération d'images : nous commencerions par Qdrant.
- Production vidéo : nous commencerions par LanceDB.
- Agent vocal : nous commencerions par pgvector.
- IA privée, sur l'appareil : nous commencerions par LanceDB, Chroma.
Sources de ce guide
- ANN-Benchmarks
- VectorDBBench (Zilliz) on GitHub
- VectorDBBench leaderboard
- Qdrant docs: indexing
- Qdrant docs: quantization
- Weaviate docs: vector indexes
- Milvus docs: index types
- Milvus docs: DiskANN
- Chroma docs: collection configuration
- Chroma docs: architecture
- LanceDB docs: indexing
- Pinecone docs: hybrid search
- pgvector README
- turbopuffer: ANN v3
- LanceDB OSS FAQ
- pgvector vs Pinecone (Encore)