Elasticsearch vs Vald : choisir la bonne base de données pour les applications GenAI
À mesure que les applications pilotées par l’IA évoluent, l’importance des capacités de recherche vectorielle pour soutenir ces avancées ne peut être surestimée. Cet article de blog abordera deux bases de données majeures dotées de capacités de recherche vectorielle : Elasticsearch et Vald. Chacune offre des capacités robustes pour gérer la recherche vectorielle, une fonctionnalité essentielle pour des applications telles que les moteurs de recommandation, la recherche d’images et la recherche sémantique. Notre objectif est de fournir aux développeurs et aux ingénieurs une comparaison claire, afin de les aider à décider quelle base de données correspond le mieux à leurs exigences spécifiques.
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer Elasticsearch et Vald, explorons d’abord le concept de bases de données vectorielles.
Une base de données vectorielle est spécifiquement conçue pour stocker et interroger des vecteurs de grande dimension, qui sont des représentations numériques de données non structurées. Ces vecteurs encodent des informations complexes, telles que le sens sémantique du texte, les caractéristiques visuelles des images ou les attributs de produits. En permettant des recherches de similarité efficaces, les bases de données vectorielles jouent un rôle central dans les applications d’IA, permettant une analyse et une récupération de données plus avancées.
Les cas d’utilisation courants des bases de données vectorielles incluent les recommandations de produits en e-commerce, les plateformes de découverte de contenu, la détection d’anomalies en cybersécurité, l’analyse d’images médicales et les tâches de traitement du langage naturel (NLP). Elles jouent également un rôle crucial dans la génération augmentée par récupération (RAG), une technique qui améliore les performances des grands modèles de langage (LLMs) en fournissant des connaissances externes afin de réduire des problèmes tels que les hallucinations de l’IA.
Il existe de nombreux types de bases de données vectorielles disponibles sur le marché, notamment :
- Bases de données vectorielles conçues à cet effet telles que Milvus, Zilliz Cloud (Milvus entièrement géré)
- Bibliothèques de recherche vectorielle telles que Faiss et Annoy.
- Bases de données vectorielles légères telles que Chroma et Milvus Lite.
- Bases de données traditionnelles avec extensions de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
Elasticsearch est un moteur de recherche basé sur Apache Lucene avec la recherche vectorielle comme extension. Vald est une base de données vectorielle conçue à cet effet. Cet article compare leurs capacités de recherche vectorielle.
Elasticsearch : présentation et technologie de base
Elasticsearch est un moteur de recherche open source construit au-dessus de la bibliothèque Apache Lucene. Il est connu pour l’indexation en temps réel et la recherche en texte intégral, ce qui en fait une solution de référence pour les applications intensives et l’analyse de journaux. Elasticsearch vous permet de rechercher et d’analyser rapidement et efficacement de grandes quantités de données.
Elasticsearch a été conçu pour la recherche et l’analytique, avec des fonctionnalités telles que la recherche floue, la correspondance d’expressions et le classement par pertinence. Il est excellent pour les scénarios où des requêtes de recherche complexes et une récupération de données en temps réel sont nécessaires. Avec l’essor des applications d’IA, Elasticsearch a ajouté des capacités de recherche vectorielle, de sorte qu’il peut effectuer de la recherche par similarité et de la recherche sémantique, ce qui est requis pour les cas d’utilisation de l’IA comme la reconnaissance d’images, la récupération de documents et l’IA générative.
Recherche vectorielle
La recherche vectorielle est intégrée dans Elasticsearch via Apache Lucene. Lucene organise les données en segments immuables qui sont fusionnés périodiquement, les vecteurs sont ajoutés aux segments de la même manière que les autres structures de données. Le processus implique de mettre les vecteurs en mémoire tampon au moment de l’indexation, puis de sérialiser ces tampons dans le cadre des segments lorsque nécessaire. Les segments sont fusionnés périodiquement pour l’optimisation, et les recherches combinent les résultats vectoriels sur tous les segments.
Pour l’indexation vectorielle, Elasticsearch utilise l’algorithme HNSW (Hierarchical Navigable Small World), qui crée un graphe où les vecteurs similaires sont connectés les uns aux autres. Il est choisi pour sa simplicité, ses solides performances dans les benchmarks et sa capacité à gérer les mises à jour incrémentales sans nécessiter un réentraînement complet de l’index. Le système effectue généralement les recherches vectorielles en dizaines ou centaines de millisecondes, bien plus rapidement que les approches par force brute.
L’architecture technique d’Elasticsearch est l’un de ses plus grands atouts. Le système prend en charge la recherche sans verrou même pendant l’indexation concurrente et maintient une cohérence stricte entre les différents champs lors de la mise à jour des documents. Ainsi, si vous mettez à jour à la fois les champs vectoriels et les champs de mots-clés, les recherches verront soit toutes les anciennes valeurs, soit toutes les nouvelles valeurs, la cohérence des données est garantie. Bien que le système puisse évoluer au-delà de la RAM disponible, les performances sont optimisées lorsque les données vectorielles tiennent en mémoire.
Au-delà des capacités de recherche vectorielle de base, Elasticsearch fournit des fonctionnalités d’intégration pratiques qui le rendent extrêmement précieux. Les recherches vectorielles peuvent être combinées avec les filtres Elasticsearch traditionnels, ce qui vous permet d’effectuer une recherche hybride mêlant similarité vectorielle et résultats de recherche en texte intégral. La recherche vectorielle est entièrement compatible avec les fonctionnalités de sécurité, les agrégations et le tri d’index d’Elasticsearch, ce qui en fait une solution complète pour les cas d’utilisation modernes de recherche.
Vald : présentation et technologie de base
Vald est un outil puissant pour rechercher très rapidement dans d’énormes volumes de données vectorielles. Il est conçu pour gérer des milliards de vecteurs et peut facilement évoluer à mesure que vos besoins augmentent. Ce qui est intéressant avec Vald, c’est qu’il utilise un algorithme ultra-rapide appelé NGT pour trouver des vecteurs similaires.
L’une des meilleures fonctionnalités de Vald est sa façon de gérer l’indexation. Habituellement, lorsque vous construisez un index, tout doit s’arrêter. Mais Vald est intelligent : il répartit l’index sur différentes machines, de sorte que les recherches peuvent continuer même pendant que l’index est mis à jour. De plus, Vald sauvegarde automatiquement vos données d’index, vous n’avez donc pas à craindre de tout perdre si quelque chose tourne mal.
Vald s’intègre très bien dans différentes configurations. Vous pouvez personnaliser la façon dont les données entrent et sortent, ce qui lui permet de bien fonctionner avec gRPC. Il est également conçu pour fonctionner sans problème dans le cloud, vous pouvez donc facilement ajouter davantage de puissance de calcul ou de mémoire lorsque vous en avez besoin. Vald répartit vos données sur plusieurs machines, ce qui l’aide à gérer d’énormes volumes d’informations.
Une autre astuce intéressante de Vald est la réplication d’index. Il stocke des copies de chaque index sur différentes machines. Cela signifie que si une machine rencontre un problème, vos recherches peuvent toujours fonctionner correctement. Vald équilibre automatiquement ces copies, vous n’avez donc pas à vous en soucier. Tout cela fait de Vald un choix solide pour les développeurs qui doivent rechercher rapidement et de manière fiable dans des tonnes de données vectorielles.
Principales différences
Lorsque vous choisissez entre Elasticsearch et Vald pour la recherche vectorielle, votre choix dépendra de votre cas d’utilisation. Comparons-les selon les aspects qui comptent le plus pour les équipes d’ingénierie.
Technologie de recherche de base
Elasticsearch utilise l’algorithme HNSW (Hierarchical Navigable Small World) pour la recherche vectorielle. HNSW crée un graphe reliant les vecteurs similaires, rend les recherches plus rapides et plus efficaces. Les recherches s’effectuent en millisecondes, avec une forte cohérence entre les mises à jour de champs.
Vald adopte une approche différente, en utilisant l’algorithme NGT pour la recherche de similarité vectorielle. Il est conçu pour des milliards de vecteurs, avec une architecture axée sur les opérations vectorielles.
Gestion des données et indexation
Elasticsearch est efficace pour gérer les données. Il combine la recherche en texte intégral avec des capacités vectorielles, ce qui vous permet de mêler des recherches par similarité vectorielle à des filtres par mots-clés. Le système utilise des segments immuables pour l’organisation des données et les fusionne périodiquement à des fins d’optimisation.
Vald est axé sur l’indexation distribuée. Sa principale fonctionnalité est la capacité à mettre à jour des index sur plusieurs machines sans interrompre les recherches. Cela signifie que vous pouvez effectuer des recherches pendant que vous mettez à jour vos données, ce qui est très utile pour les applications qui doivent être toujours disponibles.
Intégration et cas d’utilisation
Elasticsearch est adapté si vous avez besoin à la fois d’une recherche traditionnelle et d’une recherche vectorielle. Sa recherche vectorielle s’intègre bien aux fonctionnalités existantes d’Elasticsearch comme la sécurité, les agrégations et le tri d’index. Si vous utilisez déjà Elasticsearch ou si vous avez besoin d’une solution de recherche complète, alors Elasticsearch est un bon choix.
Vald est conçu pour l’intégration de la recherche vectorielle via gRPC. Il est conçu pour le cloud et axé sur les opérations vectorielles. Si votre besoin principal est une recherche vectorielle pure à grande échelle, alors la spécialisation de Vald pourrait être plus appropriée.
Mise à l’échelle et fiabilité
Elasticsearch est le plus performant lorsque les données vectorielles tiennent en mémoire, mais peut évoluer au-delà de la RAM. Il est cohérent pendant les mises à jour et prend en charge les opérations concurrentes sans verrouillage.
Vald utilise la réplication d’index entre les machines pour la fiabilité. Il gère automatiquement la distribution et l’équilibrage des données, il est donc résilient aux pannes de machines. Cette architecture est adaptée aux opérations vectorielles à grande échelle.
Quand choisir Elasticsearch ou Vald
Elasticsearch : pour les besoins de recherche combinée
Elasticsearch est le meilleur choix lorsque vous avez besoin d’une solution de recherche complète qui gère à la fois la recherche traditionnelle et la recherche vectorielle. C’est le bon choix si votre application a besoin de recherche textuelle, de requêtes sur des données structurées et de recherche par similarité vectorielle, le tout ensemble. La plateforme est adaptée aux entreprises qui utilisent déjà l’ELK Stack pour la journalisation ou la recherche, qui ont besoin d’une forte cohérence des données ou qui veulent combiner la recherche vectorielle avec le filtrage textuel. Les exemples incluent les plateformes d’e-commerce utilisant la similarité d’images avec des filtres textuels, les systèmes de recommandation de contenu mêlant recherche sémantique et par mots-clés, ou les systèmes de récupération de documents qui nécessitent à la fois des embeddings vectoriels et une recherche en texte intégral.
Vald : pour la recherche vectorielle pure à grande échelle
Vald est le meilleur choix lorsque vous devez gérer efficacement d’énormes volumes de données vectorielles. Il est conçu pour les applications qui nécessitent une recherche de similarité vectorielle pure à grande échelle, en particulier lorsque l’indexation continue est critique. Vald convient aux scénarios où vous disposez de milliards de vecteurs, devez mettre à jour des index sans temps d’arrêt ou souhaitez un système qui gère automatiquement les opérations distribuées et les basculements. C’est adapté à la recherche de similarité d’images à grande échelle, aux moteurs de recommandation en temps réel ou à toute application où les opérations vectorielles constituent l’exigence principale.
Conclusion
Le choix entre Elasticsearch et Vald vous appartient. Elasticsearch est une plateforme complète qui combine la recherche traditionnelle avec des capacités vectorielles, il est donc adapté aux applications qui ont besoin des deux. Vald est une solution spécialisée pour la recherche vectorielle pure à grande échelle avec de solides capacités distribuées. Votre choix doit se fonder sur le fait que vous ayez besoin d’une plateforme de recherche avec des capacités vectorielles (Elasticsearch) ou d’une solution de recherche vectorielle (Vald). Tenez compte de votre infrastructure existante, de l’échelle des opérations vectorielles dont vous avez besoin et de la nécessité éventuelle de fonctionnalités de recherche supplémentaires au-delà de la similarité vectorielle.
Lisez ceci pour obtenir un aperçu d’Elasticsearch et de Vald, mais pour les évaluer, vous devez le faire en fonction de votre cas d’utilisation. Un outil qui peut vous y aider est VectorDBBench, un outil de benchmarking open-source pour la comparaison de bases de données vectorielles. Au final, un benchmarking approfondi avec vos propres jeux de données et modèles de requêtes sera essentiel pour prendre une décision entre ces deux approches puissantes mais différentes de la recherche vectorielle dans les systèmes de bases de données distribuées.
Utiliser VectorDBBench open-source pour évaluer et comparer les bases de données vectorielles par vous-même
VectorDBBench est un outil de benchmarking open source destiné aux utilisateurs qui ont besoin de systèmes de stockage et de récupération de données hautes performances, en particulier des bases de données vectorielles. Cet outil permet aux utilisateurs de tester et de comparer différents systèmes de bases de données vectorielles comme Milvus et Zilliz Cloud (le Milvus managé) en utilisant leurs propres jeux de données, et de trouver celui qui correspond à leurs cas d’utilisation. Avec VectorDBBench, les utilisateurs peuvent prendre des décisions fondées sur les performances réelles des bases de données vectorielles plutôt que sur des affirmations marketing ou des ouï-dire.
VectorDBBench est écrit en Python et distribué sous la licence open source MIT, ce qui signifie que chacun peut l’utiliser, le modifier et le distribuer librement. L’outil est activement maintenu par une communauté de développeurs déterminés à améliorer ses fonctionnalités et ses performances.
Téléchargez VectorDBBench depuis son dépôt GitHub pour reproduire nos résultats de benchmark ou obtenir des résultats de performance sur vos propres jeux de données.
Jetez un rapide coup d’œil aux performances des bases de données vectorielles grand public sur le classement VectorDBBench.
Lisez les blogs suivants pour en savoir plus sur l’évaluation des bases de données vectorielles.
Ressources supplémentaires sur VectorDB, GenAI et ML
Continuer à lire

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Zilliz Named "Highest Performer" and "Easiest to Use" in G2's Summer 2025 Grid® Report for Vector Databases
Zilliz shines in G2's Summer 2025 Grid® Report as both "Highest Performer" and "Easiest to Use," solving the performance-usability dilemma.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


