Bases de datos vectoriales open source
Elige probando filtros, permisos y recuperación desde el principio.
Una consulta exitosa de vecinos cercanos es un punto de partida. Un servicio de recuperación de información también debe excluir documentos no autorizados, reflejar actualizaciones y mantener la calidad bajo carga. Haría explícitos esos requisitos antes de elegir un servidor vectorial o ampliar una base existente.
Fuentes revisadas: 2026-09-06. La comparación utiliza repositorios, licencias y documentación oficiales. Las preselecciones son mi interpretación, no resultados de un benchmark ejecutado contra estos sistemas.
Comparación de un vistazo
La tabla identifica el núcleo o extensión revisados, no todas las ediciones comerciales. AGPL forma parte del open source; más abajo explico la elección de licencia según la versión de Redis.
Calificación (1–5): una nota editorial de preparación para el encaje indicado en su fila, con fecha 2026-09-06. Suma cinco criterios de 0, 0,5 o 1 punto: mantenimiento, edición abierta (lo que incluye la edición open source sin nivel de pago), madurez y comunidad, alcance operativo e interoperabilidad, con topes para proyectos archivados, estancados o sin versión estable. El desglose está bajo la tabla y el método en el índice del Blog. Una calificación no es un benchmark ni un ranking universal; las secciones por carga siguen decidiendo.
| Proyecto | Calificación | Licencia del núcleo | Lo preseleccionaría para | Restricción principal |
|---|---|---|---|---|
| Qdrant 1.19.1 | Apache-2.0 | Recuperación vectorial dedicada con filtros de metadatos | Índices de payload, distribución de shards y recuperación requieren diseño explícito. | |
| Milvus 3.0.0 | Apache-2.0 | Una plataforma vectorial con capacidad de ingesta y consulta separadas | Los despliegues standalone y distribuido tienen alcances operativos distintos. | |
| Weaviate 1.39.2 | BSD-3-Clause | Colecciones de objetos, búsqueda híbrida y cargas por tenant | Módulos, ciclo de vida de tenants y cobertura de backups deben ajustarse al despliegue. | |
| pgvector 0.8.6 | Licencia PostgreSQL | Vectores junto a datos transaccionales que ya están en PostgreSQL | Los índices ANN compiten por recursos; los filtros selectivos necesitan ajustes. | |
| Chroma 1.5.9 | Apache-2.0 | Desarrollo local y una API de recuperación basada en colecciones | Arquitecturas local, de un nodo y distribuida son despliegues distintos. | |
| LanceDB 0.38.0 | Apache-2.0 | Recuperación multimodal embebida sobre almacenamiento local o de objetos | Integrar OSS no incluye la capa de servicio gestionada de Enterprise. | |
| Vespa 8.750.13 | Apache-2.0 | Aplicaciones que combinan recuperación y ranking propio | Esquemas, perfiles de ranking e infraestructura de consulta necesitan responsables. | |
| Redis 8.10.1 | Opción AGPLv3; alternativas RSALv2/SSPLv1 | Búsqueda vectorial cuando Redis ya forma parte de la plataforma | Verificar licencia elegida, memoria y capacidades exactas de consulta y despliegue. |
Cómo se calculó cada calificación
Cinco criterios de 0, 0,5 o 1 punto. Topes: upstream archivado 1, sin versión estable en 18 meses 2, sin versión de disponibilidad general 2,5. "Edición abierta" puntúa lo que incluye la edición open source sin nivel de pago. Puntuado el 2026-09-06 con el repositorio, las versiones y la documentación oficiales; el método está en el índice del Blog.
| Proyecto | Mantenimiento | Edición abierta | Madurez | Operación | Interoperabilidad | Calificación |
|---|---|---|---|---|---|---|
| Qdrant | 1 | 1 | 1 | 1 | 1 | 5 |
| Milvus | 1 | 1 | 1 | 0 | 1 | 4 |
| Weaviate | 1 | 1 | 1 | 0,5 | 1 | 4,5 |
| pgvector | 1 | 1 | 0,5 | 1 | 1 | 4,5 |
| Chroma | 1 | 0,5 | 0,5 | 1 | 0,5 | 3,5 |
| LanceDB | 1 | 0,5 | 0,5 | 1 | 0,5 | 3,5 |
| Vespa | 1 | 1 | 1 | 0 | 0,5 | 3,5 |
| Redis | 1 | 1 | 1 | 1 | 1 | 5 |
La licencia de pgvector es la licencia permisiva PostgreSQL. El archivo de licencia de Redis 8 ofrece AGPLv3, RSALv2 o SSPLv1 como alternativas. La opción AGPLv3 es open source; no traslades una suposición de licencia de Redis 7.x a una decisión sobre Redis 8.
Empieza por la carga
- Aplicación PostgreSQL existente: empezaría con pgvector cuando importan joins, transacciones y un único ámbito de recuperación. Compararía un servicio dedicado cuando la carga representativa justifique separarlo.
- Recuperación dedicada con filtros restrictivos de metadatos: empezaría con Qdrant e incluiría esos filtros desde el primer ensayo. Compararía Milvus para una plataforma distribuida con ingesta y consulta dimensionadas de forma independiente.
- Colecciones, búsqueda híbrida y muchos tenants: incluiría Weaviate. Aislamiento y ciclo de vida deben ser criterios de aceptación; el nombre de una colección no los demuestra.
- Desarrollo local o recuperación embebida en un servicio: compararía Chroma y LanceDB. Definiría pronto si producción necesita una biblioteca embebida, un servidor único o un servicio distribuido.
- El ranking es una capacidad central de la aplicación: incluiría Vespa. Si Redis ya conserva datos relevantes, probaría su búsqueda vectorial antes de añadir otro servicio únicamente por la búsqueda de similitud.
En RAG, la base de datos es una parte de la recuperación. Fragmentación, modelo de embeddings, coincidencia léxica, reranking y reglas de acceso pueden cambiar la calidad manteniendo el mismo motor.
Versiones y notas operativas
Qdrant — indexar filtros además de vectores
Qdrant documenta filtros de payload y consultas híbridas por etapas. Los índices de payload deben reflejar los campos usados para restringir las búsquedas.
Mediría filtros de tenant, estado del documento y fecha combinados, con la selectividad esperada. Probaría actualizaciones y visibilidad de borrados con lecturas concurrentes. Registraría replicación y consistencia elegidas y verificaría la recuperación en esa topología.
Milvus — elegir el despliegue antes de estimar su coste
La referencia de componentes separa consulta y coordinación de las dependencias de almacenamiento. También advierte que migrar de standalone a clúster no es una actualización online.
Dimensionaría y probaría la arquitectura de la versión exacta, evitando copiar diagramas de otra versión mayor. Ensayaría juntos recuperación de metadatos, datos almacenados y registro de escritura. Una prueba local no mide el coste operativo de un despliegue distribuido.
Weaviate — el estado del tenant afecta a la recuperación
Las guías operativas cubren búsqueda híbrida, colecciones y replicación. La guía actual de backups incluye tenants activos e inactivos, pero excluye los descargados a almacenamiento externo, u offloaded.
Verificaría todos los estados durante una restauración con el proveedor de backup real. Fijaría versiones de cliente y servidor juntas. Si un vectorizador llama a un modelo externo, incluiría sus credenciales, flujo de datos y comportamiento ante fallos en la arquitectura.
pgvector — ANN con filtros necesita un plan real
El README revisado documenta búsqueda exacta, HNSW, IVFFlat y escaneos iterativos del índice. Un escaneo aproximado puede devolver pocos resultados cuando el filtro elimina candidatos; importan los ajustes y la exploración iterativa.
Inspeccionaría el plan real con filtros por tenant, escrituras concurrentes y mantenimiento de índices. Incluiría backup y recuperación PostgreSQL en la prueba. Una extensión evita un segundo servicio, pero no aporta capacidad ilimitada a la base.
Chroma — mantener la API y reevaluar el despliegue
La descripción de arquitectura distingue modos local, de un nodo y distribuido. Empezar fácilmente en local ayuda; cada despliegue conserva su propio alcance de durabilidad.
Probaría persistencia tras perder el proceso, borrado de colecciones y actualizaciones. Después documentaría autenticación y recuperación en producción. Compararía la versión de servidor y API del cliente exactas utilizadas por la aplicación.
LanceDB — distinguir almacenamiento embebido y servicio gestionado
OSS puede usar almacenamiento local o de objetos cloud. La comparación con Enterprise distingue integrar OSS en tu servicio de la consulta distribuida y operación gestionadas.
Mediría lecturas al object store, latencia en frío y mantenimiento de índices en el entorno previsto. Usar S3 no aporta por sí solo autenticación de aplicación, un servicio de consultas ni una política de recuperación para el servicio que integra la biblioteca.
Vespa — recuperación y ranking forman una aplicación
La referencia de vecinos cercanos combina recuperación vectorial con filtros y perfiles de ranking. Es útil cuando la aplicación necesita controlar la selección y puntuación de candidatos.
Probaría el pipeline completo de ranking, incluida inferencia si se utiliza, con la mezcla real de consultas. Presupuestaría evolución del esquema, alimentación de documentos y operación del clúster.
Redis — precisar la ruta de consulta vectorial
La referencia de búsqueda vectorial documenta índices y distancias. Redis ofrece varias capacidades relacionadas; especifica los comandos e índices que necesita la aplicación.
Verificaría memoria, persistencia, política de expulsión y enrutamiento de consultas en el despliegue elegido. Comprobaría el soporte OSS de cada función, sin asumir paridad con un servicio comercial. Fijaría juntas versión de Redis y licencia elegida.
Una prueba que pueda cambiar la decisión
Mantén constantes documentos, modelo de embeddings, dimensiones, métrica de distancia y consultas. Compara configuraciones con un objetivo de calidad explícito.
- Dos medidas de calidad: mide recall ANN frente a vecinos exactos del mismo dataset filtrado. Evalúa por separado la relevancia con documentos juzgados; los vecinos vectoriales exactos no son automáticamente respuestas útiles.
- Permisos: prueba filtros restrictivos por tenant y documento antes de que los resultados salgan del servicio. Un tenant enviado por el cliente no establece por sí solo un límite de autorización.
- Visibilidad de cambios: inserta, actualiza y borra durante las consultas. Mide cuándo se refleja el cambio, también tras fallar una réplica.
- Recuperación y migración del modelo: restaura en un entorno limpio. Conserva documentos fuente, IDs de fragmentos y versiones de embeddings; ensaya reconstruir el índice con otro modelo sin mezclar vectores incompatibles.
- Coste a igual calidad: compara latencia p95 y rendimiento durante la ingesta, incluyendo índices, réplicas, payloads y almacenamiento frío.
Como referencia de escala, un millón de vectores float32 de 768 dimensiones ocupan unos 2,86 GiB de valores brutos. Excluye índices, metadatos, réplicas, logs y sobrecarga de ejecución; no es una recomendación de memoria RAM.
Completa el recorrido de los datos
Usa almacenamiento de objetos para material fuente y artefactos de recuperación, un orquestador para ingesta versionada y un motor OLAP cuando la pregunta requiere agregación analítica. Elige cada capa por un requisito medido.
El glosario técnico explica RAG y conceptos relacionados con ejemplos y fuentes primarias.
Las bases de grafos complementan la búsqueda por similitud con relaciones explícitas y recorridos. Esa comparativa también cubre Graph RAG y sus necesidades de procedencia y control de acceso.