Avanzado 11 minStack

Milvus: la base vectorial de los grandes volumes

Respuesta directa

Milvus es una base de datos vectorial de código abierto escrita en Go y C++, bajo licencia Apache 2.0 (más de 46.000 estrellas en GitHub a finales de septiembre de 2026, versión 3.0.2), diseñada para operar a gran escala: miles de millones de vectores y una arquitectura distribuida que separa el cálculo del almacenamiento. Una variante ligera, Milvus Lite, se instala con pip install pymilvus y trabaja en un simple archivo local: útil para empezar, pero rara vez necesaria para un corpus local modesto.

Milvus es una base de datos vectorial de código abierto diseñada para trabajar a gran escala: miles de millones de vectores, despliegue distribuido y una selección muy amplia de índices. El proyecto, escrito en Go y C++, contaba con más de 46.000 estrellas en GitHub a finales de septiembre de 2026, en la versión 3.0.2. Para un solo equipo también existe una versión ligera, Milvus Lite, que permite empezar a pequeña escala sin cambiar de herramienta más adelante. Queda por saber si tu corpus justifica esta potencia: para muchos proyectos locales, la respuesta es no, y es un dato útil.

Por Mohamed Meguedmi·Actualización 2026-09-28·Probado en Windows, macOS y Linux

#Lo que busca Milvus

La mayoría de las bases de datos vectoriales están orientadas a proyectos de equipo. Milvus apunta a la escala industrial: separación del almacenamiento y el cómputo, escalabilidad horizontal nativa en Kubernetes y un catálogo de índices que permite ajustar con precisión el equilibrio entre precisión, memoria y velocidad. El proyecto afirma que puede procesar decenas de miles de consultas sobre miles de millones de vectores y mantener los datos al día mediante actualizaciones en streaming en tiempo real. Es una elección de arquitectura, no un simple conjunto de funciones.

Esta ambición tiene una contrapartida directa: en un corpus de cincuenta mil pasajes, esta potencia no se nota, pero la complejidad sí se nota de inmediato. Por tanto, la pregunta que hay que plantearse no es «¿es la mejor base de datos vectorial?», sino «¿alcanzará mi corpus el tamaño en el que estas decisiones importen?».

El proyecto se presenta como una base en la que confían los desarrolladores de IA para construir aplicaciones de búsqueda de texto e imágenes, generación aumentada por recuperación y sistemas de recomendación, y afirma que numerosas empresas lo utilizan para usos considerados críticos. Este posicionamiento permite entender a qué público se dirige: equipos que construyen un producto destinado a crecer, no un script personal de búsqueda documental entre unos cientos de archivos PDF.

#Una arquitectura basada en componentes

El kit RAG Local

Tus documentos, tu IA: un RAG local fiable sobre tus PDF, notas y correos — sin enviar nada a la nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j

En un despliegue completo, Milvus no es un proceso, sino un conjunto: nodos de consulta, nodos de datos, un servicio de coordinación, almacenamiento de objetos y un registro de mensajes. Cada componente se dimensiona de forma independiente —el proyecto destaca la posibilidad de aumentar por separado los nodos de consulta para una carga de lectura intensa y los nodos de datos para una carga de escritura intensa—, lo que es exactamente lo que se busca a gran escala y aquello de lo que se prescinde en una estación de trabajo. Los microservicios sin estado en Kubernetes también permiten una recuperación rápida tras un incidente, y la compatibilidad con réplicas mejora aún más la tolerancia a fallos al cargar los segmentos de datos en varios nodos de consulta. Esta separación entre cómputo y almacenamiento es precisamente lo que distingue una base de datos pensada para la escala industrial de una pensada para un único servicio: tiene un coste de operación permanente, incluso cuando el tráfico sigue siendo bajo, algo que pocas comparativas mencionan antes del despliegue.

i
El modo ligero existe: Milvus Lite
pip install -U pymilvus installe le SDK Python officiel ; pip install "pymilvus[milvus-lite]" ajoute la variante allégée. Il suffit ensuite d'instancier client = MilvusClient("milvus_demo.db") pour obtenir une base vectorielle locale dans un fichier, sans rien déployer. Le code écrit contre cette version reste valable si vous passez un jour au déploiement complet en changeant l'URI de connexion : c'est le principal argument pour commencer par Milvus plutôt que d'y migrer plus tard.

#Mínimo en Python, con Milvus Lite

  1. 01
    Conectarse
    La secuencia from pymilvus import MilvusClient seguida de client = MilvusClient("milvus_demo.db") abre una base de datos local en un archivo; sustituir el argumento por una URI de servidor permite pasar a un despliegue completo sin modificar el resto del código.
  2. 02
    Crear una colección
    client.create_collection(collection_name="demo_collection", dimension=1024) — la dimensión debe coincidir exactamente con la de tu modelo de embedding.
  3. 03
    Insertar los datos
    res = client.insert(collection_name="demo_collection", data=data) donde data es una lista de diccionarios, cada uno con un vector y sus metadatos.
  4. 04
    Buscar
    res = client.search(collection_name="demo_collection", data=vecteurs_requete, limit=5, output_fields=["text"]) devuelve los cinco pasajes más cercanos con los campos solicitados.

El proyecto destaca su integración con herramientas de IA comunes —LangChain, LlamaIndex, OpenAI, Hugging Face—, lo que, según sus autores, convierte a Milvus en un almacén vectorial adecuado para la generación aumentada por recuperación. Milvus funciona con modelos de embedding tanto de código abierto como a través de servicios de embedding, para texto, imágenes y vídeo, y ofrece una utilidad (pymilvus[model]) para convertir datos no estructurados en vectores sin que tengas que escribir el código de llamada al modelo ni gestionar por separado la biblioteca cliente de cada proveedor.

#Los índices, y cuál elegir

Familias de índices útiles en la práctica
IndexEquilibrioQuand
Exacto (FLAT)Precisión perfecta, exploración exhaustivaHasta unas decenas de miles de vectores
Grafo (HNSW)Consultas rápidas, alto consumo de memoriaLa opción predeterminada razonable por debajo del millón
Particiones invertidas (IVF)Construcción rápida, ajustes que necesitan modificarseGrandes volúmenes, memoria limitada
SCANNBúsqueda vectorial comprimida de alto rendimientoEquilibrio entre memoria y velocidad como alternativa a IVF-PQ
En disco (DiskANN)Capacidad a costa de una mayor latenciaCorpus que supera ampliamente la RAM disponible
GPU (CAGRA)Construcción y búsqueda aceleradas mediante hardwareVolúmenes de datos muy grandes, con una GPU dedicada disponible para la indexación

En un corpus documental local, la mayoría de las veces basta con recordar una sola cifra: por debajo del millón de vectores, la diferencia entre las seis familias de índices se mide en milisegundos, no en minutos, y casi siempre sería mejor invertir en otra parte del proyecto el esfuerzo dedicado a elegir el ajuste adecuado.

El consejo que más tiempo ahorra sigue siendo el mismo en todas partes: empezar por la búsqueda exacta. Los índices aproximados resuelven un problema de escala, y adoptarlos antes de tener ese problema supone añadir parámetros que ajustar y una exhaustividad que medir, a cambio de milisegundos que nadie ha notado. Milvus documenta explícitamente estas seis familias —HNSW, IVF, FLAT, SCANN, DiskANN y variantes cuantizadas— como optimizadas cada una para un escenario diferente, con soporte de GPU mediante CAGRA de NVIDIA para la indexación de volúmenes muy grandes. El proyecto añade a estos índices un filtrado por metadatos y una búsqueda por rango optimizados al mismo nivel que la propia búsqueda vectorial, en lugar de implementarlos como una capa separada que ralentizaría el resultado final.

#Lo que distingue a Milvus a gran escala

Más allá de los índices, varias funcionalidades explican por qué grandes organizaciones eligen Milvus en lugar de una alternativa más sencilla. La arquitectura multi-tenant permite configurar cuatro niveles de aislamiento —base de datos, colección, partición o clave de partición—, lo que permite a un solo clúster atender desde unas pocas decenas hasta millones de tenants sin perder rendimiento de búsqueda ni granularidad en el control de acceso. El almacenamiento en caliente y en frío coloca los datos consultados con frecuencia en memoria o en SSD, y relega los datos consultados rara vez a un almacenamiento más lento y menos costoso, lo que reduce la factura sin sacrificar el rendimiento de las tareas críticas.

En cuanto a la búsqueda, Milvus admite de forma nativa la búsqueda de texto completo con BM25, así como embeddings dispersos aprendidos como SPLADE y BGE-M3, además de la búsqueda semántica mediante vectores densos. Los vectores dispersos y densos pueden coexistir en una misma colección, con funciones de reordenación (reranking) para fusionar los resultados de varias consultas —una búsqueda híbrida similar en esencia a la que ofrece Qdrant, pero construida aquí en torno a BM25 en lugar de una fusión genérica de puntuaciones—. En cuanto a la seguridad, el proyecto destaca la autenticación obligatoria, el cifrado TLS de las comunicaciones y el control de acceso por roles (RBAC), tres elementos que se esperan cuando una base de datos sirve a varias aplicaciones o equipos, y mucho menos críticos para una instancia que solo escuche en localhost.

#En local: lo que implica

Recursos
El despliegue completo requiere varios contenedores y varios gigabytes de memoria RAM, incluso antes de añadir tu modelo de lenguaje: el servicio de coordinación, los nodos de consulta, los nodos de datos, el almacenamiento de objetos y el registro de mensajes se ejecutan por separado.
Memoria de vectores
Alrededor de 4 kB por vector de 1.024 dimensiones en precisión completa, sin contar el índice. Es esta aritmética la que determina la arquitectura, no las funcionalidades, y sigue siendo válida tanto si usas Milvus como Qdrant o pgvector.
Operación
Copias de seguridad, actualizaciones de versión, supervisión: una verdadera base de datos distribuida requiere un verdadero administrador. El ecosistema Milvus incluye Attu, una interfaz gráfica de administración, y Birdwatcher para depuración del sistema, dos herramientas que aun así suponen conocer la arquitectura subyacente.
La GPU queda reservada para el modelo
La codificación de documentos y la inferencia ya compiten por la tarjeta; la búsqueda vectorial, en cambio, es principalmente cuestión de procesador y memoria, salvo que se active explícitamente la construcción de índices en la GPU mediante CAGRA para volúmenes muy grandes.

#Cuándo Milvus es la opción adecuada

La pregunta adecuada nunca es «¿qué base de datos tiene más funcionalidades?», sino «¿cuáles de estas funcionalidades utilizará realmente mi proyecto?». La arquitectura multi-tenant de cuatro niveles, el almacenamiento en caliente y en frío, el RBAC y la búsqueda híbrida BM25 existen para organizaciones que atienden a miles de usuarios con requisitos de cumplimiento normativo; en un ordenador personal o para las herramientas internas de un equipo pequeño, estos mecanismos permanecen inactivos, mientras que la complejidad de su configuración sigue muy presente. Milvus se justifica cuando la trayectoria del proyecto —no su estado actual— apunta hacia esas necesidades en un plazo razonable.

Elegir honestamente
SituaciónLo que conviene
Millones de vectores, crecimiento continuoMilvus
Necesidad de ajustar con precisión el equilibrio entre memoria y precisiónMilvus
Corpus del equipo, filtros, unos cientos de miles de pasajesUna base dedicada más sencilla, como Qdrant
PostgreSQL ya instaladoExtensión vectorial de PostgreSQL (pgvector)
Aplicación de un solo procesoUna base de datos integrada o una biblioteca como FAISS

#FAQ

¿Milvus es gratuito?+
Sí, el motor es de código abierto bajo licencia Apache 2.0 y se puede autoalojar sin coste de licencia, con un repositorio de GitHub que contaba con más de 46.000 estrellas a finales de septiembre de 2026. El proveedor también ofrece un servicio de pago en la nube (Zilliz Cloud), que no es necesario para el uso local.
¿Se necesita una GPU?+
No para las búsquedas habituales, que requieren procesador y memoria. Algunos procesos de construcción de índices, en particular CAGRA de NVIDIA, pueden aprovechar una GPU para acelerar la indexación a muy gran escala, pero no es lo habitual en un corpus local.
¿Se puede usar en un solo ordenador?+
Sí, a través de Milvus Lite, su versión reducida instalada con pip install "pymilvus[milvus-lite]", que funciona en un archivo local sin necesidad de desplegar un servidor ni lanzar un contenedor. El despliegue completo, con sus nodos separados, su servicio de coordinación y su almacenamiento de objetos, es claramente desproporcionado para un simple equipo personal.
¿Milvus o Qdrant?+
Qdrant es más sencillo de administrar, se instala con un solo comando Docker y basta de sobra para las necesidades de un equipo, con un filtrado por metadatos igual de completo. Milvus se justifica cuando se necesitan varios millones de vectores, un escalado distribuido en Kubernetes o un ajuste fino de los índices entre seis familias diferentes, incluidas las opciones para GPU.
¿Cuánta memoria se necesita para un millón de vectores?+
Aproximadamente 4 GB en precisión completa para vectores de 1.024 dimensiones, sin contar la estructura del índice, y mucho menos con cuantización de producto o un índice en disco como DiskANN. Cuenta además con el espacio del índice y los metadatos, así como con la memoria del almacenamiento de objetos en un despliegue distribuido completo, en lugar del modo ligero basado en un único archivo.
¿Qué herramientas acompañan a Milvus en producción?+
El ecosistema oficial incluye Attu para la administración gráfica, Birdwatcher para la depuración, Prometheus y Grafana para la supervisión, Milvus CDC para la sincronización de datos y conectores con Spark, Kafka y Airbyte para construir pipelines de ingestión más amplios, más allá de lo que exige un uso estrictamente local.
¿Milvus realiza búsquedas híbridas como Qdrant?+
Sí, pero con un enfoque diferente: Milvus combina nativamente vectores densos y vectores dispersos (BM25, SPLADE, BGE-M3) en una misma colección, con funciones de reordenamiento para fusionar los resultados. Es una búsqueda híbrida construida alrededor de la búsqueda de texto completo clásica, en lugar de una fusión genérica de puntuaciones como el RRF usado por otras bases vectoriales, una elección que favorece la precisión en consultas que contienen términos exactos.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.