Pour un projet IA ou RAG, je choisis une base vectorielle selon la scalabilité, le filtrage, la latence et l’effort d’exploitation. Le mauvais choix marche en démo, puis coûte cher en prod. On va comparer les options sans folklore.
Qu’est-ce qui compte vraiment ?
Ce qui compte vraiment, ce n’est pas juste de stocker des vecteurs dans un coin. C’est de retrouver vite les bons embeddings, avec les bons filtres, au bon coût, même quand le volume explose et que les données changent tous les jours.
Une base vectorielle devient vite un choix structurant dès qu’on construit un pipeline IA, un RAG ou une recherche sémantique. RAG veut dire Retrieval Augmented Generation, en gros on va chercher les bons documents avant de demander au LLM de répondre. Si cette recherche est lente, incomplète ou mal filtrée, toute l’expérience se dégrade. Même avec un très bon modèle.
Il faut regarder plusieurs choses avant de choisir. La scalabilité, bien sûr, donc la capacité à encaisser plus de documents, plus de requêtes, plus d’utilisateurs. Les limites des index aussi. Un index, c’est la structure qui permet de retrouver rapidement les vecteurs proches. Certains tiennent bien à grande échelle, d’autres deviennent chers ou pénibles à maintenir.
Les algorithmes ANN comptent beaucoup. ANN veut dire Approximate Nearest Neighbor, donc recherche approximative de voisins proches. HNSW s’appuie sur un graphe, un peu comme un réseau de chemins rapides entre vecteurs similaires. IVF découpe l’espace vectoriel en zones, puis cherche seulement dans les zones les plus pertinentes. FLAT, lui, compare plus directement les vecteurs, c’est simple et précis, mais souvent trop coûteux quand on passe à grande échelle.
Le filtrage des métadonnées est un autre vrai sujet. Si vous devez chercher uniquement dans une langue, un client, une date, un produit ou un statut, la base doit gérer ça proprement. La latence aussi. Où sont les données ? Où tourne le LLM ? Où est votre application ? Quelques millisecondes peuvent vite devenir un problème.
J’ai souvent vu des équipes valider un POC sur quelques milliers de documents, puis découvrir trop tard que le filtrage JSON, la latence d’indexation ou les coûts d’infra deviennent le vrai sujet. Le write-to-search-speed compte aussi. C’est le délai entre l’écriture d’un nouvel embedding et le moment où il devient trouvable dans les résultats.
| Critère | Question à poser avant de choisir |
| Scalabilité | Est-ce que la base tient avec 10 fois plus de vecteurs et de requêtes ? |
| Index | Quelles sont les limites de taille, de mémoire et de mise à jour ? |
| ANN | Quel compromis entre vitesse, précision et coût est acceptable ? |
| Filtrage | Est-ce que les filtres metadata ou JSON restent rapides à grande échelle ? |
| Latence | Où sont les données par rapport à l’application et au LLM ? |
| Exploitation | Qui gère les index, les backups, le monitoring et les montées de charge ? |
| Recherche hybride | Faut-il combiner recherche vectorielle et mots-clés classiques ? |
| Write-to-search-speed | Combien de temps avant qu’un nouvel embedding apparaisse dans les résultats ? |
Quelles solutions comparer ?
Je ne vois pas ces outils comme une course avec un gagnant unique. Le bon choix dépend surtout de votre contexte : volume, équipe ops, besoin de filtrage, stack déjà en place, et niveau de contrôle voulu.
| Solution | Hébergement | Échelle | Index | Filtrage | Charge d’exploitation | Meilleur usage probable |
| Pinecone | Serverless, entièrement géré | Échelle élevée | ANN propriétaire | Métadonnées | Faible | Recherche vectorielle managée à forte échelle |
| Milvus | Managé ou auto-hébergé | Très grande échelle | HNSW, IVF_Flat, FLAT, DiskANN et autres | Scalaire ou booléen | Moyenne à élevée | Gros volumes avec contrôle technique fin |
| Weaviate | Managé ou auto-hébergé | Échelle élevée | ANN basé sur HNSW, index plat, HFresh | Métadonnées, recherche hybride | Moyenne | Recherche hybride avec métadonnées |
| Qdrant | Managé ou auto-hébergé | Échelle élevée | HNSW | Payload filtering, JSON inclus | Moyenne | Recherche vectorielle avec filtres JSON |
| pgvector | Auto-hébergé ou Postgres géré | Échelle moyenne | HNSW et IVFFlat | SQL | Faible à moyenne | Équipes déjà à l’aise avec Postgres |
| Chroma | Auto-hébergé ou managé | Petite à moyenne échelle | HNSW | Métadonnées | Faible à moyenne | Prototypes et usages simples à moyenne échelle |
| Redis | Auto-hébergé ou managé | Échelle élevée | FLAT, HNSW, SVS-VAMANA | Mots-clés, vecteurs, métadonnées et patterns | Modérée | Recherche hybride sur stack Redis |
| Elasticsearch | Managé ou auto-hébergé | Très grande échelle | ANN basé sur HNSW avec indexation texte Lucene | Lucene | Élevée | Recherche texte et vectorielle à très grande échelle |
| SingleStore | Multi-cloud ou on-prem | Échelle élevée | Fonctionnalités ANN | SQL | Modérée | Recherche vectorielle avec logique SQL |
| FAISS | Bibliothèque embarquée ou auto-hébergée | Échelle élevée | IVF, HNSW, LSH, PQ, Flat et autres | Intégré minimal | Élevée | Moteur vectoriel puissant à intégrer soi-même |
La lecture honnête, c’est que Pinecone réduit beaucoup l’ops. Si votre équipe veut livrer vite sans gérer l’infra, c’est souvent rassurant.
Milvus et Elasticsearch peuvent monter très haut, mais ils demandent plus de maîtrise. J’ai déjà vu des équipes sous-estimer ce point : la techno tient la charge, mais l’exploitation devient le vrai sujet.
Pgvector est rassurant si votre équipe vit déjà dans Postgres. On garde le SQL, les habitudes, les sauvegardes, les droits. FAISS, lui, est très puissant, mais ce n’est pas une base managée prête à l’emploi. Il faut construire le système autour.
Quel choix selon votre usage ?
Le bon choix, je le vois rarement dans une fiche produit. Il se voit dans votre contexte. Votre équipe, vos volumes, votre stack actuelle, votre tolérance à l’exploitation. Une base vectorielle populaire peut être un mauvais choix si elle ajoute trop de complexité pour un simple moteur de recherche documentaire.
Pour démarrer vite, surtout sur un POC ou un premier assistant RAG, Pinecone est souvent logique. RAG veut dire Retrieval Augmented Generation, c’est le fait d’aller chercher les bons documents avant de répondre avec un modèle IA. Pinecone est serverless et entièrement géré, donc vous évitez la gestion des serveurs, du scaling, des index, des mises à jour. C’est confortable quand l’objectif est de valider un usage, pas de monter une plateforme infra.
Pour une petite ou moyenne base documentaire, je regarde souvent Chroma ou pgvector. Chroma est simple pour prototyper, très pratique côté Python et notebooks. Pgvector est plus cohérent si vous avez déjà Postgres, des droits utilisateurs, des tables métier, des sauvegardes en place. On reste dans un environnement connu.
Quand l’équipe veut plus de contrôle, le trio Milvus, Weaviate, Qdrant devient intéressant. Milvus vise la très grande échelle et propose beaucoup de types d’index, utile quand les volumes explosent. Weaviate est fort quand vous mélangez recherche vectorielle, filtrage par métadonnées et recherche hybride. Qdrant est très solide si le payload filtering compte, notamment le filtrage JSON fin sur vos objets métier.
Si le texte classique reste important, je ne mettrais pas Elasticsearch de côté. Il sait très bien faire de l’indexation texte, du scoring, des filtres, et il peut ajouter du vectoriel. Mais il demande de l’exploitation, parfois beaucoup. Redis peut aussi être pertinent quand vous avez besoin de patterns rapides, de métadonnées, de cache et de recherche vectorielle intégrée à une architecture déjà Redis.
Pour les équipes SQL, pgvector ou SingleStore peuvent être très cohérents. Le filtrage SQL est naturel, les jointures aussi. Mais je valide toujours sur les vrais volumes, parce que les performances vectorielles en démo et en production, c’est rarement la même histoire.
FAISS, lui, est à part. C’est une bibliothèque très puissante, avec beaucoup de types d’index. Mais ce n’est pas une base de données complète. Il faut construire autour le stockage, l’API, le filtrage, la sécurité, l’observabilité, les sauvegardes. Excellent si vous savez exactement ce que vous faites.
| Usage | Choix cohérent |
| POC rapide sans infra | Pinecone |
| Petite base documentaire | Chroma ou pgvector |
| Stack Postgres existante | Pgvector |
| Recherche hybride texte + vecteur | Weaviate ou Elasticsearch |
| Filtrage JSON poussé | Qdrant |
| Très gros volumes | Milvus |
| Architecture SQL analytique | SingleStore |
| Contrôle total bas niveau | FAISS |
Quels pièges en production ?
J’ai vu pas mal de pipelines RAG se planter en production, et honnêtement, ce n’était presque jamais “le LLM qui hallucine” au départ. Le problème venait de la récupération. Mauvais documents, documents trop vieux, documents interdits, ou bons documents mais arrivés trop tard.
Le filtrage des métadonnées est souvent le vrai sujet. Dans un RAG documentaire, on ne cherche pas juste “le passage le plus proche” dans toute la base. On cherche le bon passage, pour le bon client, dans la bonne langue, avec les bons droits d’accès, sur une période donnée, parfois dans un type de contenu précis comme contrat, ticket support ou documentation produit.
Filtrer avant ou pendant la recherche vectorielle change tout. Si je filtre après, la base récupère d’abord les voisins les plus proches, puis elle jette ceux qui ne passent pas les règles. Résultat classique : il reste trois bouts de texte moyens, voire rien du tout. Si je filtre avant ou pendant, la recherche se fait directement dans le bon périmètre. C’est meilleur pour la pertinence, et souvent meilleur pour les coûts aussi.
Sur Qdrant, le filtrage JSON est pratique pour exprimer des règles sur des champs comme client_id, language, content_type ou visibility. Sur pgvector ou SingleStore, on retombe plutôt sur du filtrage SQL, ce qui est très confortable quand les métadonnées vivent déjà dans un modèle relationnel. Le point important, ce n’est pas l’outil. C’est de tester les vrais filtres, pas une démo sans contraintes.
Le write-to-search-speed est l’autre piège. Ça veut dire : quand un nouveau document arrive, qu’il est découpé, transformé en embedding, puis indexé, combien de temps faut-il avant qu’un utilisateur puisse le trouver ? Sur une base de connaissances vivante, un catalogue produit ou des données de support client, cinq minutes de retard peuvent suffire à donner une mauvaise réponse.
Il faut aussi regarder où vivent les données. Si les embeddings sont dans une région cloud, l’application ailleurs, et le LLM encore ailleurs, la latence s’empile. En local, ça ne se voit pas trop. Avec des utilisateurs qui interrogent le système toute la journée, ça ressort très vite.
Ma méthode simple : je teste sur un échantillon représentatif, avec les vrais volumes prévus, les vrais filtres, les mises à jour, les suppressions, les droits d’accès et les requêtes pénibles. Celles qui mélangent dates, synonymes, documents proches et restrictions utilisateur.
- Vérifier que les filtres client, langue, date, type et droits sont appliqués avant ou pendant la recherche.
- Mesurer le délai entre ajout d’un document et disponibilité en recherche.
- Tester les suppressions et les mises à jour d’embeddings.
- Mesurer la latence avec l’application, la base vectorielle et le LLM dans leur vraie localisation.
- Lancer des requêtes difficiles sur un volume proche de la production.
Alors, laquelle vaut vraiment le coup pour vous ?
Si je dois résumer simplement : une base vectorielle ne se choisit pas sur une démo, mais sur votre futur usage réel. Pinecone aide à aller vite avec peu d’ops. Milvus, Weaviate, Qdrant, Elasticsearch ou Redis prennent du sens quand les volumes, les filtres ou la recherche hybride deviennent sérieux. pgvector et SingleStore rassurent les équipes SQL. FAISS donne beaucoup de contrôle, mais demande de bâtir le système autour. Le vrai bénéfice pour vous, c’est d’éviter une architecture RAG lente, fragile ou coûteuse, et de choisir une solution qui tient quand le projet grandit.
FAQ
- À quoi sert une base de données vectorielle en IA ?
Elle sert à stocker des embeddings et à retrouver les contenus les plus proches sémantiquement d’une requête. C’est la brique centrale d’un moteur de recherche sémantique ou d’un pipeline RAG. - Quelle base vectorielle choisir pour un projet RAG ?
Je regarde d’abord le volume, les filtres, la latence, la fraîcheur des nouveaux embeddings et l’effort d’exploitation. Pinecone est pratique pour démarrer vite, Qdrant ou Weaviate sont intéressants pour le filtrage et l’hybride, pgvector peut suffire si Postgres est déjà au cœur de votre stack. - Quelle différence entre HNSW et IVF ?
HNSW utilise une structure en graphe pour trouver rapidement des voisins proches. IVF découpe l’espace vectoriel en zones pour limiter la recherche. Les deux sont des approches ANN, donc pensées pour accélérer la recherche sur de grands volumes. - Le filtrage des métadonnées est-il vraiment important ?
Oui, souvent plus qu’on ne le pense. Dans un RAG réel, on filtre par client, langue, date, type de document ou droits d’accès. Si le filtrage est mal conçu, la recherche peut devenir lente ou retourner des résultats hors contexte. - FAISS est-il une base de données vectorielle complète ?
FAISS est surtout une bibliothèque très puissante pour l’indexation et la recherche vectorielle. Elle offre beaucoup de types d’index, mais elle ne fournit pas seule toute la couche base de données, API, exploitation, filtrage avancé et gouvernance.
A propos de l’auteur
Je suis Franck Scandolera, expert et formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code avec n8n, intégration de l’IA en entreprise et SEO/GEO. J’accompagne des équipes qui veulent connecter leurs données, leurs outils IA et leurs process sans empiler des usines à gaz. Avec webAnalyste et Formations Analytics, j’ai travaillé pour des clients comme Logis Hôtel, Yelloh Village, BazarChic, la Fédération Française de Football ou Texdecor. Si vous voulez cadrer un projet IA, RAG, data ou automatisation, contactez-moi.
⭐ Analytics engineer, Data Analyst et Automatisation IA indépendant ⭐
Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
Data Analyst & Analytics engineering : tracking avancé (GTM server, e-commerce, CAPI, RGPD), entrepôt de données (BigQuery, Snowflake, PostgreSQL, ClickHouse), modèles (Airflow, dbt, Dataform), dashboards décisionnels (Looker, Power BI, Metabase, SQL, Python).
Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.
