Qu'est-ce que Weaviate ?
Weaviate est une base de données vectorielle open-core qui stocke ensemble les objets de données et leurs embeddings vectoriels, permettant de chercher par sens, par mot-clé, ou par les deux à la fois. Sa propre description GitHub la présente comme « une base de données vectorielle open source et cloud-native qui stocke à la fois des objets et des vecteurs ». Contrairement à un index vectoriel ajouté après coup à une base de données existante, Weaviate est conçu dès le départ comme un stockage nativement vectoriel, avec schéma structuré, filtrage et multi-tenant intégrés.
- Fonction principale : une base de données qui indexe des embeddings vectoriels aux côtés de données d'objets structurées, interrogeable via REST, GraphQL ou gRPC
- Modes de recherche : recherche purement vectorielle (plus proches voisins), recherche par mots-clés BM25, et recherche hybride combinant les deux en une requête
- Vectorisation : modules d'intégration intégrés pour les modèles d'embedding OpenAI, Cohere, HuggingFace, Google et Ollama, ou possibilité de fournir directement ses propres vecteurs déjà calculés
- Déploiement : Docker, Docker Compose, Kubernetes/Helm, un client Python embarqué pour le prototypage local, ou le service géré Weaviate Cloud
- Éditeur : Weaviate B.V., société basée à Amsterdam, aux Pays-Bas
- Dépôt canonique : github.com/weaviate/weaviate — la source de l'historique de versions, des fichiers de licence et des notes de version utilisés dans cet avis
Historique du projet et jalons de versions de Weaviate
Weaviate est développé activement depuis plusieurs années et publie désormais de fréquentes versions mineures, avec souvent plusieurs versions mineures dans le même mois. Le projet est passé d'un simple moteur de recherche vectorielle à une plateforme plus large incluant aussi la recherche générative (RAG), le reclassement, un Query Agent en langage naturel, et des fonctionnalités d'entreprise comme le contrôle d'accès basé sur les rôles et le multi-tenant.
- 1v1.19 — Recherche hybride disponible en version générale
Why it matters: A combiné la recherche par mots-clés BM25 et la recherche vectorielle en un seul type de requête, une fonctionnalité qui reste centrale dans le positionnement de Weaviate face aux bases purement vectorielles. - 2v1.24 — Vecteurs nommés
Why it matters: A permis à un même objet de contenir plusieurs représentations vectorielles (par exemple une par modèle d'embedding ou une par propriété), utile pour les configurations RAG multi-modèles. - 3v1.25–v1.26 — Améliorations du multi-tenant et de la réplication
Why it matters: A renforcé l'isolation entre locataires et la durabilité des données pour les déploiements de production multi-clients. - 4v1.27–v1.28 — Améliorations de la compression vectorielle (RQ/PQ)
Why it matters: A réduit l'empreinte mémoire des déploiements à grande échelle en compressant les vecteurs stockés, un levier direct de coût pour les clusters auto-hébergés. - 5v1.29–v1.30 — Contrôle d'accès basé sur les rôles (RBAC)
Why it matters: A ajouté des permissions granulaires, une exigence pour de nombreux déploiements d'entreprise ou réglementés qui exécutent Weaviate sur leur propre infrastructure. - 6v1.38 — Version mineure
Why it matters: A poursuivi le rythme rapide du projet avec des travaux de performance sur le filtrage et les métriques de modules, selon la [page officielle des releases GitHub](https://github.com/weaviate/weaviate/releases). - 7v1.39
Why it matters: A ajouté un nouveau module generative-meta ainsi que d'autres améliorations de performance pour l'index HNSW et les requêtes d'agrégation, selon la [page officielle des releases GitHub](https://github.com/weaviate/weaviate/releases). - 8v1.40 — Namespaces en disponibilité générale
Why it matters: Les Namespaces isolent les ressources et les données des utilisateurs sur un cluster partagé, une brique pour les déploiements multi-équipes, selon la [page officielle des releases GitHub](https://github.com/weaviate/weaviate/releases).
Que peut-on faire avec Weaviate ?
L'ensemble des fonctionnalités de Weaviate se concentre sur le stockage et l'interrogation de vecteurs à grande échelle, tout en gardant le filtrage structuré et la recherche par mots-clés disponibles dans la même requête. Voici ce que fait réellement chaque composant, selon le README GitHub et la documentation de Weaviate.
- Recherche vectorielle — recherche des plus proches voisins sur des embeddings de haute dimension, appuyée sur un index HNSW, pour retrouver des objets sémantiquement similaires
- Recherche hybride — combine la similarité vectorielle avec un score de mots-clés BM25 en une seule requête, utile lorsque ni la recherche purement sémantique ni la recherche purement par mots-clés ne donnent seules les meilleurs résultats
- Filtrage structuré — filtre les résultats de recherche vectorielle selon les propriétés des objets (dates, nombres, chaînes, coordonnées géographiques) dans la même requête, plutôt qu'en post-traitant les résultats côté application
- Recherche générative (RAG) — transmet directement les objets récupérés à un fournisseur de LLM connecté pour générer une réponse, un résumé ou une transformation des résultats, sans couche d'orchestration séparée
- Query Agent — traduit automatiquement des questions en langage naturel en requêtes Weaviate optimisées, selon les propres pages produit de Weaviate
- Modules de vectorisation — intégrations intégrées pour générer des embeddings via OpenAI, Cohere, HuggingFace, Google et Ollama, ou possibilité d'indexer des vecteurs calculés soi-même
- Multi-tenant et RBAC — isole les données par locataire et contrôle l'accès via des permissions basées sur les rôles, destiné aux déploiements de production, multi-clients ou réglementés
- Mise à l'échelle horizontale et réplication — répartit et réplique les données entre les nœuds pour des jeux de données plus volumineux et une disponibilité accrue dans les clusters auto-hébergés
Exemples d'utilisation : trois façons d'utiliser Weaviate
Il s'agit de workflows concrets construits à partir des fonctionnalités documentées de Weaviate ci-dessus — pas de cas d'usage hypothétiques.
Exécuter un pipeline RAG entièrement local avec Ollama
Démarrer Weaviate via Docker Compose, configurer le module text2vec-ollama pour pointer vers une instance Ollama locale pour les embeddings, et connecter un LLM local via Ollama pour la recherche générative. Chaque requête — embedding, stockage, récupération et génération — reste sur votre propre machine ou réseau, sans aucun appel API externe.
Combiner recherche par mots-clés et recherche sémantique pour la recherche de produits ou de documents
Indexer un catalogue de produits ou un ensemble de documents avec à la fois des propriétés textuelles et des embeddings vectoriels, puis lancer une seule requête de recherche hybride combinant la correspondance par mots-clés BM25 (efficace pour les termes exacts, les références produit ou les noms) avec la similarité vectorielle (efficace pour les résultats liés conceptuellement), en ajustant le paramètre alpha pour pondérer l'un ou l'autre mode.
Filtrer les résultats de recherche sémantique par métadonnées structurées
Rechercher des objets sémantiquement similaires à une phrase de recherche, tout en filtrant sur un publishDate postérieur à une date donnée ou une category correspondant à une valeur spécifique — combinant similarité vectorielle et filtrage structuré en une seule requête, plutôt que de filtrer côté client après récupération.
Installer Weaviate : Docker, Kubernetes et mode embarqué
Weaviate n'est pas une application de bureau à télécharger — c'est un serveur de base de données que l'on exploite soi-même, ou que l'on consomme sous forme de service cloud géré. Les méthodes d'installation ci-dessous proviennent du README GitHub officiel et de la documentation — vérifiez toujours ces pages directement, les tags de version exacts changeant d'une release à l'autre.
Méthode | Commande / Lien |
|---|---|
| Docker (conteneur unique, test rapide) | docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.40.3 |
| Docker Compose | Générer un docker-compose.yml via le configurateur officiel, puis exécuter docker compose up -d |
| Kubernetes / Helm | Chart Helm officiel, selon le guide d'installation Kubernetes |
| Embarqué (client Python) | Instance locale embarquée via weaviate-client, pour le prototypage — voir la doc officielle |
| Weaviate Cloud (géré, optionnel) | console.weaviate.cloud — aucun auto-hébergement requis, tarification à l'usage avec un palier gratuit |
Weaviate expose par défaut HTTP sur le port 8080 et gRPC sur le port 50051 ; vérifiez que l'instance fonctionne avec curl http://localhost:8080/v1/meta. Weaviate lui-même n'a pas de configuration matérielle minimale fixe au-delà de Docker ou Kubernetes, mais des performances exploitables à grande échelle dépendent de la taille du jeu de données, du type d'index choisi et de l'activation ou non de la compression vectorielle — une petite collection fonctionne confortablement sur un ordinateur portable, tandis qu'un index de production volumineux nécessite un serveur dimensionné pour son nombre de vecteurs et leur dimensionnalité.
Tarifs et licence de Weaviate
L'auto-hébergement du cœur sous BSD-3-Clause est gratuit ; un ensemble défini de fonctionnalités verrouillées et le service géré Weaviate Cloud sont payants. Il s'agit d'un modèle réellement scindé, pas d'un simple « open core avec option entreprise » — vérifiez les termes exacts dans le fichier LICENSE pour votre propre analyse de conformité.
Auto-hébergé (cœur BSD-3-Clause)
- Coût:
- Gratuit
- Ce qui est couvert:
- Le moteur complet de base de données vectorielle en dehors du répertoire
wl/— recherche vectorielle, recherche hybride, filtrage, la plupart des intégrations de modules et une mise à l'échelle auto-gérée
Auto-hébergé, fonctionnalités verrouillées wl/
- Coût:
- Nécessite une clé Weaviate License payante (variable d'environnement
LICENSE_KEY) - Ce qui est couvert:
- Un sous-ensemble défini de fonctionnalités du répertoire
wl/du dépôt — vérifiez le fichier LICENSE pour le périmètre actuel, celui-ci pouvant évoluer d'une release à l'autre
Weaviate Cloud (géré)
- Coût:
- Tarification à l'usage avec un palier gratuit, selon weaviate.io
- Ce qui est couvert:
- Un cluster entièrement géré, sans auto-hébergement ni gestion de clé de licence requis ; distinct du modèle de licence auto-hébergé ci-dessus
Le propre annuaire logiciel de PromptQuorum classait auparavant la licence de Weaviate simplement comme open source. D'après une lecture directe des fichiers LICENSE et LICENSE-BSD du dépôt GitHub de Weaviate au moment de cet avis, cela sous-estime la structure scindée : les métadonnées propres du dépôt GitHub indiquent la licence comme "Other" précisément parce que le code central (BSD-3-Clause) et le code du répertoire wl/ (Weaviate License propriétaire, verrouillée par clé) sont sous des licences différentes. Lisez vous-même les fichiers LICENSE avant de vous appuyer sur cette distinction pour une décision juridique — le périmètre de la licence peut évoluer d'une release à l'autre.
Weaviate vs. Qdrant
Weaviate et Qdrant figurent parmi les bases de données vectorielles auto-hébergeables les plus utilisées, et elles sont souvent comparées car toutes deux offrent un cœur gratuit et auto-hébergé plus un palier cloud géré optionnel. Les différences les plus nettes portent sur le modèle de requête, la structure de licence et la surface d'API.
Licence du cœur
- Weaviate:
- BSD-3-Clause, plus une licence propriétaire distincte pour les fonctionnalités du répertoire
wl/ - Qdrant:
- Apache-2.0 pour le moteur central — voir l'avis Qdrant pour le détail de sa propre licence
API de requête
- Weaviate:
- REST, GraphQL et gRPC
- Qdrant:
- REST et gRPC (pas de GraphQL)
Recherche hybride
- Weaviate:
- Intégrée, combinant recherche vectorielle et mots-clés BM25 en une requête
- Qdrant:
- Prise en charge via la fusion de vecteurs sparse+dense
Recherche générative / aides RAG
- Weaviate:
- Module de recherche générative intégré, appelant directement un fournisseur de LLM connecté
- Qdrant:
- Pas une fonctionnalité centrale intégrée ; généralement associé à une couche d'orchestration externe
Modèle de données
- Weaviate:
- Objets basés sur un schéma avec propriétés et vecteurs nommés
- Qdrant:
- Points avec payloads (JSON flexible) et vecteurs
Option cloud gérée
- Weaviate:
- Weaviate Cloud, à l'usage avec un palier gratuit
- Qdrant:
- Qdrant Cloud, à l'usage avec un palier gratuit
Si votre priorité est une base de données qui gère aussi l'étape de génération à partir de la récupération en une seule requête (recherche générative), en plus du support GraphQL, l'ensemble de fonctionnalités de Weaviate couvre plus de terrain de série. Si votre priorité est un cœur plus simple, uniformément sous licence Apache-2.0, sans verrouillage de fonctionnalités à suivre, évaluez directement Qdrant. Les deux projets sont activement maintenus ; vérifiez les détails actuels de fonctionnalités et de tarifs sur le site de chaque projet avant de décider.
Weaviate convient-il à votre cas d'usage ?
La pertinence de Weaviate dépend de votre besoin d'une base de données vectorielle basée sur un schéma, avec recherche hybride et générative intégrée, et de la compatibilité du modèle de licence scindé BSD/propriétaire avec votre organisation.
Utilisez Weaviate si
- Vous voulez une base de données vectorielle auto-hébergeable avec recherche hybride intégrée (vecteur + mots-clés BM25) en une seule requête, plutôt que de combiner vous-même deux systèmes distincts
- Vous voulez que la recherche générative (RAG) soit gérée directement dans la requête de base de données, sans mettre en place une couche d'orchestration séparée pour des cas d'usage simples
- Vous avez besoin de GraphQL comme option de requête aux côtés de REST et gRPC
- Vous voulez la flexibilité d'exécuter gratuitement un petit déploiement uniquement sous BSD-3-Clause, et de ne payer une clé de licence que si vous avez précisément besoin d'une fonctionnalité verrouillée du répertoire
wl/ - Vous voulez disposer plus tard d'une option cloud gérée officielle (Weaviate Cloud) sans changer de base de données, si l'auto-hébergement ne suffit plus
Attendez, ou regardez ailleurs, si
- Vous avez besoin, pour une exigence juridique ou d'achat, que chaque fonctionnalité du produit soit couverte par une licence open source unique et non modifiée — le modèle scindé BSD-3-Clause/propriétaire de Weaviate pourrait ne pas satisfaire cela en l'état ; lisez directement les fichiers LICENSE pour votre cas précis
- Vous voulez le magasin purement vectoriel le plus simple possible, sans modélisation de schéma — une option embarquée plus légère comme Chroma peut mieux convenir aux petits projets en phase de prototype
- Vous êtes déjà standardisé sur une infrastructure sous licence Apache-2.0 et voulez éviter de suivre un second type de licence — voir la comparaison Weaviate vs. Qdrant ci-dessus
- Vous avez besoin d'un support entreprise officiel avec des SLA contractuels plutôt que d'un support communautaire/via issue-tracker pour le palier auto-hébergé non payant — ce niveau de support est généralement lié à un déploiement Weaviate Cloud ou sous licence
Weaviate face aux autres bases de données vectorielles
Weaviate est l'une des plusieurs bases de données vectorielles auto-hébergeables conçues pour le RAG et la recherche sémantique. Voici comment elle se positionne face aux autres options de ce domaine — voir le Local LLM Software Directory pour le catalogue complet, et la comparaison dédiée Weaviate vs. Qdrant ci-dessus pour le duel le plus proche.
- Qdrant — une base de données vectorielle sous licence Apache-2.0 avec des API REST et gRPC et un fort support de la recherche hybride sparse+dense ; voir la section de comparaison dédiée ci-dessus et l'avis Qdrant complet.
- Milvus — une base de données vectorielle sous licence Apache-2.0 conçue pour des déploiements à très grande échelle, avec un plus large éventail de types d'index que la plupart des alternatives ; voir l'avis Milvus pour tous les détails.
- Chroma — une base de données vectorielle plus légère, centrée sur les embeddings, populaire pour le prototypage et les projets RAG de plus petite taille grâce à une configuration minimale ; voir l'avis Chroma.
- txtai — une bibliothèque tout-en-un embarquée pour la recherche sémantique et le RAG, qui intègre directement l'indexation vectorielle dans une application Python plutôt que de fonctionner comme un serveur séparé ; voir l'avis txtai si une approche embarquée mono-processus convient mieux à votre projet qu'un serveur de base de données autonome.
- Pinecone — une base de données vectorielle entièrement gérée et à code source fermé, sans aucune option d'auto-hébergement, utile comme cas de contraste si vous souhaitez spécifiquement comparer un fournisseur uniquement cloud à des options auto-hébergeables comme Weaviate ; voir la comparaison Pinecone vs. Weaviate vs. Qdrant vs. Chroma pour une confrontation directe à quatre.
Erreurs courantes lors de l'évaluation de Weaviate
La plupart des confusions autour de Weaviate viennent de sa structure de licence, de l'hypothèse qu'il faut utiliser le service cloud, ou de la confusion avec une simple bibliothèque embarquée.
Erreur 1 : croire que Weaviate est entièrement open source sans restriction
Le cœur de Weaviate est sous BSD-3-Clause, mais un ensemble défini de fonctionnalités du répertoire wl/ du dépôt nécessite une clé de licence payante pour être activé, sous une Weaviate License propriétaire distincte. Les métadonnées propres du dépôt GitHub indiquent la licence globale comme "Other" précisément pour cette raison. Lisez directement le fichier LICENSE avant de vous appuyer sur cette distinction pour une décision juridique ou d'achat.
Erreur 2 : croire qu'il faut utiliser Weaviate Cloud pour exécuter Weaviate
Weaviate Cloud est un service géré optionnel et distinct. Le cœur sous BSD-3-Clause s'exécute entièrement sur votre propre infrastructure via Docker, Docker Compose ou Kubernetes, sans obligation de créer un compte Weaviate Cloud.
Erreur 3 : traiter Weaviate comme une simple bibliothèque embarquée telle que Chroma
Weaviate propose bien un client Python embarqué pour le prototypage local, mais son modèle de déploiement principal est un serveur de base de données autonome avec schéma, multi-tenant, RBAC et mise à l'échelle horizontale — plus proche, en périmètre, d'une base de données de production que d'un simple magasin vectoriel embarqué.
Erreur 4 : croire que les modules de vectorisation gardent les données entièrement locales par défaut
Si vous configurez un module de vectorisation pour un fournisseur d'embedding cloud tel qu'OpenAI ou Cohere, ces requêtes précises d'embedding quittent votre infrastructure. Pour un pipeline entièrement local, orientez plutôt le module de vectorisation vers un moteur hébergé localement comme Ollama.
Questions fréquemment posées
Qu'est-ce que Weaviate ?
Weaviate (weaviate.io, code source sur github.com/weaviate/weaviate) est une base de données vectorielle open-core qui stocke à la fois des objets structurés et leurs embeddings vectoriels, prenant en charge la recherche vectorielle, la recherche par mots-clés BM25, la recherche hybride et une recherche générative (RAG) intégrée.
Weaviate est-il gratuit ?
Le cœur sous licence BSD-3-Clause est gratuit à auto-héberger. Un ensemble défini de fonctionnalités du répertoire wl/ du dépôt nécessite une clé Weaviate License payante pour être activé. Weaviate Cloud, l'option d'hébergement géré, est un service distinct à l'usage avec un palier gratuit.
Weaviate est-il open source ? Quelle licence utilise-t-il ?
Partiellement. Le cœur de Weaviate est sous licence BSD-3-Clause. Un ensemble défini de fonctionnalités du répertoire wl/ du dépôt relève d'une Weaviate License propriétaire distincte, qui ne s'active qu'avec une clé de licence payante. Les métadonnées du dépôt GitHub classent la licence globale comme "Other" en raison de cette scission, plutôt que comme une licence unique approuvée par l'OSI couvrant l'ensemble du code.
Weaviate peut-il fonctionner entièrement hors ligne ou en environnement isolé ?
Oui, pour la base de données centrale elle-même — elle s'exécute entièrement sur votre propre infrastructure sans appel externe requis. Si vous configurez un module de vectorisation ou de recherche générative pour un fournisseur cloud (OpenAI, Cohere et autres), ces appels précis nécessitent un accès Internet ; orientez ces modules vers un moteur hébergé localement comme Ollama pour un pipeline entièrement hors ligne.
Weaviate prend-il en charge la recherche hybride ?
Oui. Weaviate combine la recherche par similarité vectorielle avec la recherche par mots-clés BM25 en une seule requête hybride, avec un paramètre alpha ajustable pour pondérer l'un des modes.
Weaviate dispose-t-il d'une API GraphQL ?
Oui. Weaviate expose des API REST, GraphQL et gRPC, avec des bibliothèques clientes officielles pour Python, TypeScript/JavaScript, Go, Java et C#/.NET.
Comment installer Weaviate ?
Le chemin le plus rapide est une simple commande Docker (docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:<version>). Pour la production, utilisez Docker Compose ou le chart officiel Kubernetes/Helm ; pour le prototypage local en Python, utilisez le client embarqué. Voir le tableau d'installation ci-dessus pour le détail.
Qu'est-ce que Weaviate Cloud ?
Weaviate Cloud est le service d'hébergement optionnel et entièrement géré de Weaviate B.V., tarifé à l'usage avec un palier gratuit. Il est distinct du modèle de licence auto-hébergé — vous pouvez auto-héberger indéfiniment le cœur sous BSD-3-Clause sans jamais utiliser Weaviate Cloud.
Qui développe Weaviate ?
Weaviate est développé par Weaviate B.V., une société basée à Amsterdam, aux Pays-Bas, avec un dépôt open source actif sur github.com/weaviate/weaviate.
Combien d'étoiles Weaviate a-t-il sur GitHub ?
Le dépôt GitHub de Weaviate affiche environ 16 900 étoiles et environ 1 400 forks — vérifiez le dépôt en direct pour le nombre actuel, celui-ci changeant en continu.