Aller au contenu
Cercle IA Tech · Embeddings Un site du réseau Cercle IA Tech

Comparatif

Base de données vectorielle : comparatif de sept solutions

pgvector, Qdrant, Weaviate, Milvus, Chroma, Pinecone, Elasticsearch et OpenSearch : licence, hébergement, recherche hybride, d'après leur documentation.

Mis à jour le

Ce site est édité par IArche, qui édite ALMA, la plateforme IA pour PME d'IArche. Ce comparatif n'est pas un classement : il résume ce que dit la documentation de chaque projet, lue le 15/11/2026. Pour une PME qui utilise déjà PostgreSQL, l'extension pgvector est souvent le point de départ le plus simple : une seule base à sauvegarder. Les bases dédiées se justifient par le volume, par la recherche hybride intégrée ou par des besoins d'exploitation précis.

Le tableau

BM25, cité plusieurs fois ci-dessous, est l'algorithme classique de classement par mots-clés.

Solution Nature Licence (d'après le dépôt) Hébergement Recherche plein texte intégrée
pgvector Extension de PostgreSQL 13 et suivants voir le dépôt votre PostgreSQL, ou un hébergeur qui la propose celle de PostgreSQL
Qdrant Moteur de recherche vectorielle, écrit en Rust Apache 2.0 libre, cloud géré, hybride, privé oui (BM25, vecteurs creux)
Weaviate Base vectorielle, écrite en Go BSD 3 clauses pour l'essentiel Docker, Kubernetes, Weaviate Cloud oui (BM25)
Milvus Base vectorielle, écrite en Go et C++ Apache 2.0 Lite, Standalone, Distributed, Zilliz Cloud oui (BM25)
Chroma Infrastructure de données pour l'IA Apache 2.0 local, client-serveur, Chroma Cloud oui sur Chroma Cloud
Pinecone Service de recherche — service en ligne, option BYOC oui (BM25)
Elasticsearch Moteur de recherche, écrit en Java voir le dépôt à installer ; certaines fonctions sous abonnement oui
OpenSearch Moteur de recherche Apache 2.0 à installer oui

Chaque solution en quelques lignes

pgvector. Ajoute à PostgreSQL un type vector, des opérateurs de distance et deux index approximatifs, HNSW et IVFFlat (dépôt, version 0.8.7 dans les instructions d'installation). Filtres par clause WHERE, jointures avec vos tables existantes, recherche plein texte de PostgreSQL pour l'hybride. Limite à connaître : 2 000 dimensions au plus pour indexer un vector. Voir Installer pgvector.

Qdrant. Moteur écrit en Rust, sous licence Apache 2.0, qui se lance en local par docker run -p 6333:6333 qdrant/qdrant ; le dépôt prévient que ce lancement est sans authentification et ouvert sur toutes les interfaces réseau. Interfaces HTTP et gRPC (protocole d'appel à distance), filtres sur les métadonnées (payload), recherche hybride sémantique et lexicale (documentation). Son index HNSW a pour réglages par défaut m = 16 et ef_construct = 100.

Weaviate. Base écrite en Go qui stocke objets et vecteurs ; recherche hybride (vecteurs + BM25 + filtres) en un appel, modules qui calculent les plongements à l'import, multi-locataire, contrôle d'accès par rôles (dépôt). Le dépôt précise que les fichiers du dossier wl/ sont sous licence commerciale.

Milvus. Écrit en Go et C++, sous licence Apache 2.0, porté par la fondation LF AI & Data. Quatre modes, du plus léger au plus lourd : Milvus Lite (installé par pip), Standalone (une machine), Distributed (Kubernetes) et Zilliz Cloud. Nombreux types d'index (HNSW, IVF, DiskANN, index sur processeur graphique) et recherche plein texte BM25 intégrée (dépôt).

Chroma. Sous licence Apache 2.0, s'installe par pip install chromadb et fonctionne en mémoire pour prototyper, avec persistance possible, ou en mode client-serveur (dépôt). Chroma Cloud propose la recherche vectorielle, hybride et plein texte en service.

Pinecone. Service de recherche qui sert recherche plein texte, sémantique et par vecteurs creux depuis un même index ; il peut calculer les plongements lui-même à partir du texte envoyé, sépare les clients par espaces de noms (namespaces) et filtre par métadonnées (documentation). Option de déploiement dans votre propre compte cloud (Bring Your Own Cloud).

Elasticsearch. Le type dense_vector accepte jusqu'à 4 096 dimensions, avec les mesures l2_norm, dot_product, cosine et max_inner_product, et quantifie les vecteurs par défaut depuis la version 9.0 (documentation). Intérêt évident si vous l'exploitez déjà pour la recherche plein texte. Certaines variantes d'index (bbq_disk) demandent un abonnement Enterprise.

OpenSearch. Moteur sous licence Apache 2.0 (dépôt). Sa recherche vectorielle s'appuie sur les moteurs Faiss (par défaut), Lucene et JVector, avec les méthodes HNSW et IVF ; NMSLIB y est marqué comme obsolète (documentation).

Comment choisir

Votre situation Piste à examiner d'abord
Vous avez déjà PostgreSQL et un volume modeste pgvector
Vous avez déjà Elasticsearch ou OpenSearch pour la recherche leur recherche vectorielle
Vous prototypez en Python, sans serveur Chroma en mémoire, ou Milvus Lite
Gros volume, plusieurs serveurs, équipe qui exploite des conteneurs Qdrant, Weaviate, Milvus
Pas d'équipe pour exploiter une base un service géré (Pinecone, offres cloud des autres)

Quatre questions à poser quelle que soit la solution :

  1. Filtre-t-elle pendant la recherche ? Indispensable pour que chacun ne voie que ses documents (voir RAG et droits d'accès).
  2. Fait-elle de la recherche hybride ? Les plongements seuls ratent les références exactes (voir Recherche hybride).
  3. Où sont stockées les données ? Pour un service géré, vérifiez la région d'hébergement et le contrat (voir Embeddings et données personnelles).
  4. Qui la sauvegarde et la met à jour ? Une base de plus, c'est une sauvegarde, une supervision et des mises à jour de plus.

Questions fréquentes

Faut-il une base vectorielle dédiée pour un RAG de PME ?

Pas nécessairement. Si vous avez déjà PostgreSQL, l'extension pgvector ajoute vecteurs, index approximatifs et filtres dans la même base. Une base dédiée se justifie surtout par le volume ou par des fonctions précises.

Quelles bases vectorielles peut-on héberger soi-même ?

D'après leur documentation : pgvector (avec PostgreSQL), Qdrant, Weaviate, Milvus, Chroma, Elasticsearch et OpenSearch. Pinecone se consomme comme un service, avec une option de déploiement dans votre propre compte cloud (BYOC).

Sources

Pages consultées pour écrire cet article :

  1. https://github.com/pgvector/pgvector
  2. https://github.com/qdrant/qdrant
  3. https://qdrant.tech/documentation/overview/
  4. https://qdrant.tech/documentation/concepts/indexing/
  5. https://github.com/weaviate/weaviate
  6. https://github.com/milvus-io/milvus
  7. https://github.com/chroma-core/chroma
  8. https://docs.pinecone.io/guides/get-started/overview
  9. https://docs.pinecone.io/guides/index-data/indexing-overview
  10. https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/dense-vector
  11. https://github.com/elastic/elasticsearch
  12. https://github.com/opensearch-project/OpenSearch
  13. https://docs.opensearch.org/latest/mappings/supported-field-types/knn-methods-engines/

À lire aussi