Feuille de route de Milvus

🌌 Vers la base de données multimodale de nouvelle génération et Vector Lakebase

Feuille de route des produits Milvus

Bienvenue sur la feuille de route de Milvus !

Nous faisons entrer Milvus dans une nouvelle ère : celle de la base de données multimodale de nouvelle génération, couvrant aussi bien les données structurées que non structurées, la recherche en temps réel que l’analyse hors ligne, et les performances d’un cluster unique que l’architecture globale de Vector Lakebase.

Cette feuille de route présente les objectifs principaux de Milvus v3.0 (bêta publique) et de Milvus v3.1 (développement à long terme), ainsi que le plan d’évolution de Zilliz Vector Lakebase.

🌠 Milvus v3.0 (bêta publique)

Bêta publique : mai 2026

Objectif : développer un moteur de requête sémantique natif avec tri, agrégation et recherche multivectorielle intégrés, ainsi que la base « lake-native » de Zilliz Vector Lakebase afin que le calcul puisse accéder aux données sans migration.

🎯 Points clés

🔹 Évolution du schéma et des types de données

  • Prise en charge des commandes ALTER COLLECTION ADD COLUMN et DROP COLUMN à l’exécution, sans reconstruction des index ni interruption du service.
  • Fournit deux méthodes de remplissage pour les nouvelles colonnes : externe via Spark Connector, et interne avec des vecteurs clairsemés BM25 générés automatiquement au moment de l’écriture.
  • Introduction de TEXT en tant que type de données à part entière, permettant de stocker le texte d’origine aux côtés des vecteurs, avec prise en charge de BM25 et de la correspondance de texte.

🔹 Refonte de l’exécution des requêtes

  • Intégration de la fonction « Order By » dans le moteur avec tri par segment et tri par fusion entre les nœuds de requête.
  • Ajout d’agrégations de requêtes de type SQL (GROUP BY avec COUNT, SUM, AVG, MIN, MAX) calculées dans le noyau.
  • Introduction de facettes de recherche sur les résultats ANN avec des statistiques par compartiment et des sous-facettes imbriquées côté serveur.
  • Prise en charge des dictionnaires personnalisés et des tables de synonymes enregistrés au niveau du cluster pour améliorer le rappel des caractères CJK et spécifique à un domaine.

🔹 Prise en charge des vecteurs multiples et des interactions tardives

  • Introduction de StructList pour représenter une entité sous la forme d’une seule ligne comportant plusieurs vecteurs, avec prise en charge native des interactions tardives (ColBERT, ColPali) via MAX_SIM.
  • Prise en charge de la recherche au niveau des éléments et des entités sur les champs StructList, avec des politiques de correspondance configurables pour les résultats au niveau des entités.
  • Ajout de trois stratégies de recherche multi-vecteurs: TokenANN (exhaustive), Muvera (basée sur la projection, sans apprentissage) et Lemur (compression apprise).

🔹 Refonte de la recherche et de l’index

  • Refonte de l’index inversé creux avec compression par blocs, quantification des poids et format persistant ; introduction de SINDI comme algorithme IP creux par défaut.
  • Extension de la couverture de l’index avec l’ensemble de la famille Faiss (SVS, Panorama, PQ, IVFPQ, ScaNN) et MinHash DIDO pour la détection des quasi-duplicatas.
  • Prise en charge des champs vectoriels pouvant être nuls pour les plongements asynchrones et les modalités manquantes, avec filtrage automatique au moment de la recherche.

🔹 Architecture de stockage et de calcul vectoriel de Lakebase

  • Introduction d’External Collection pour indexer et interroger les données sur place dans S3 / GCS / Azure, avec prise en charge des formats de table Lance, Parquet, Iceberg et Vortex.
  • Ajout de Vortex, un format en colonnes ouvert, et de Loon (Storage V3), une couche de stockage au format mixte permettant des lectures ponctuelles efficaces à partir d’un stockage objet.
  • Prise en charge des instantanés à un moment donné avec isolation de type MVCC pour le traitement par lots, tandis que le service continue d’écrire.
  • Intégration en tant que Spark DataSource v2 pour lire et écrire directement dans Milvus au sein des pipelines Spark / Databricks / EMR.

🪐 Milvus v3.1 (vision à long terme)

Calendrier : fin 2026 et au-delà

Priorités : intelligence de stockage, intégrité du chemin d’écriture, extensibilité de calcul et interopérabilité étendue avec Vector Lakebase.

🎯 Points clés

🔹 Stockage et chemin d’écriture

  • Ajout de la descente de prédicats avec élagage par index de page et filtre de Bloom au niveau de la couche de stockage.
  • Mise en œuvre de la déduplication par clé primaire lors de l’ingestion pour éviter les doublons au moment de l’écriture.

🔹 Calcul et élasticité

  • Prise en charge des fonctions définies par l’utilisateur (UDF) pour l’exécution de logiques personnalisées dans le moteur, au niveau du plan de données.
  • Activer le fractionnement des shards pour les rediviser à mesure que les données augmentent, avec prise en charge des clés de partitionnement personnalisées.

🔹 Spark et extension de Vector Lakebase

  • Étendre le connecteur Spark avec une bibliothèque plus riche d’opérateurs batch natifs.
  • Ajout de fonctionnalités liées au format des tables, notamment le « time-travel », l’évolution du schéma et la restauration d’instantanés.
  • Étendre l’interopérabilité de Vector Lakebase avec des index externes mis à jour en temps réel (CDC), la prise en charge d’Apache Paimon et des formats de données supplémentaires.

🤝 Construisons ensemble l’avenir de Milvus

Milvus est un projet open source porté par une communauté mondiale de développeurs. Nous invitons tous les membres de la communauté à contribuer à façonner la base de données multimodale de nouvelle génération :

  • 💬 Partagez vos commentaires: proposez de nouvelles fonctionnalités ou des idées d’optimisation sur GitHub Discussions.

  • 🐛 Signaler des problèmes: signalez les bugs via GitHub Issues.

  • 🔧 Contribuez au code: soumettez des pull requests et participez au développement des fonctionnalités principales.

    • Pull requests: contribuez directement à notre base de code. Que ce soit pour corriger des bugs, ajouter des fonctionnalités ou améliorer la documentation, vos contributions sont les bienvenues.
    • Guide de développement: consultez notre Guide du contributeur pour connaître les consignes relatives aux contributions au code.
  • 🗣️ Participez à la conversation: posez des questions et rencontrez les responsables du projet sur Discord, lors des « Milvus Office Hours » ou sur l’ensemble des canaux communautaires.

  • Faites passer le mot: partagez les bonnes pratiques et les exemples de réussite, et suivez Milvus sur X, LinkedIn et YouTube.

👉 GitHub : milvus-io/milvus