Bases vectoriales
Una base vectorial guarda tus fragmentos de texto junto con su vector, la huella numérica de su significado. Al buscar, convierte la pregunta en otro vector y devuelve los fragmentos cuyos vectores se le parecen más. Es la pieza central de casi cualquier RAG.
En NappAI las encuentras en la categoría Vector Stores de la paleta. Todas se usan igual: un campo Operation decide si guardan, buscan o hacen de buscador para otro componente.
La conclusión primero: la calidad es la misma
Medimos FAISS, Chroma, Qdrant y PGVector con los mismos 80 fragmentos, el mismo modelo de vectores y las mismas 40 preguntas. Las cuatro devolvieron exactamente los mismos cinco primeros resultados en las 40 preguntas. Con la misma información y el mismo modelo de vectores, la base no cambia lo que encuentras: elige por cómo trabajas, no por calidad.
| Base | Encuentra la respuesta en el primer resultado | Entre los cinco primeros | Guardar 80 fragmentos (con sus vectores) | Tiempo por búsqueda en un flujo |
|---|---|---|---|---|
| FAISS | 60 % | 83 % | 10,0 s | 16 ms |
| Chroma DB | 60 % | 83 % | 12,7 s | 16 ms |
| Qdrant | 60 % | 83 % | 12,3 s | 36 ms |
| PGVector | 60 % | 83 % | 12,8 s | 35 ms |
| Neo4j (con Neo4j GraphRAG, modo Vector) | 60 % | 83 % | – | 44 ms |
Medido el 17 de octubre de 2026 en un portátil, con una base de conocimiento de prueba de 9 documentos y 40 preguntas. Muestra cómo se comportan, no es una promesa para tus datos. En Neo4j la búsqueda por vectores es aproximada: si se le piden solo 5 resultados, a veces no devuelve los 5 más parecidos. Por eso Neo4j GraphRAG pide siempre al menos 50 candidatos y se queda con los que le pides; así medidos, sus cinco primeros resultados coinciden con los de FAISS en todas las preguntas. Más detalles en Cómo lo hemos medido.
Qué ofrece cada una
| FAISS | Chroma DB | Qdrant | PGVector | Neo4j (Neo4j GraphRAG) | |
|---|---|---|---|---|---|
| Necesita un servidor | No | No (o tu servidor Chroma, si lo tienes) | Sí | Sí: PostgreSQL con la extensión de vectores | Sí |
| Dónde se guarda | Archivos en tu almacenamiento de NappAI | Una carpeta en tu almacenamiento de NappAI, o tu servidor | Tu servidor Qdrant | Tu base de datos | Tu base de datos Neo4j |
| Filtros por datos del fragmento | Sí (Filter by Metadata); un agente puede rellenarlos | Sí, sin Contains ni listas | Sí; un agente puede rellenarlos | Sí; un agente puede rellenarlos | Sí: Filter by Metadata en el componente Neo4j, o escritos en Retrieval Query |
| Umbral de puntuación | Sí | Sí | Sí | No | No |
| Resultados variados (MMR) | No | No | Sí | No | No |
| Búsqueda por palabras y significado | Con BM25 Retriever + Ensemble Retriever | Igual que FAISS | Igual que FAISS | No | Sí, integrada (modos Hybrid) |
| Recorrer relaciones (grafo) | No | No | No | No | Sí |
| Filtros escritos por un modelo (SelfQueryRetriever) | No | Sí | Sí | Sí | No: usa el modo Text2Cypher |
Cuál elegir
| Tu situación | Elige | Por qué |
|---|---|---|
| Quieres probar un RAG hoy, sin instalar nada | FAISS | No necesita servidor: el índice se guarda en tu almacenamiento de NappAI y otro flujo de tu cuenta lo lee con el mismo Index Name y Persist Directory. |
| Una base de preguntas frecuentes o unos manuales de tamaño medio, y quieres filtrar por categoría | Chroma DB | Tampoco necesita servidor, admite filtros y funciona con SelfQueryRetriever. |
| Muchos documentos, varios flujos o agentes que consultan la misma colección | Qdrant | Es un servidor pensado para crecer y es la única de las cuatro que reúne filtros, umbral, MMR y SelfQueryRetriever. |
| Tu empresa ya trabaja con PostgreSQL | PGVector | Los vectores viven en una tabla de tu base de siempre, con sus copias de seguridad y sus permisos. No tiene filtros en el componente. |
| Tus datos son clientes, máquinas, pedidos o personas unidos entre sí | Neo4j con Neo4j GraphRAG | Además de buscar por significado, recorre las relaciones y responde preguntas de recuento. Consulta GraphRAG con Neo4j. |
Para guardar fragmentos de texto en Neo4j existe también el componente Neo4j de Vector Stores, con las mismas operaciones que las demás bases.
Otras bases vectoriales de la paleta
Si tu empresa ya usa uno de estos servicios, puedes guardar y buscar en él con el mismo esquema de operaciones:
- Astra DB: base vectorial en la nube de DataStax.
- Cassandra: sobre tu base Apache Cassandra.
- Couchbase: sobre tu base Couchbase.
- Elasticsearch: si ya tienes tus datos en Elasticsearch.
- Milvus: base vectorial de código abierto para grandes volúmenes.
- MongoDB Vector Store: sobre MongoDB Atlas.
- Pinecone: servicio de búsqueda vectorial gestionado en la nube.
- Redis: sobre tu servidor Redis.
- Supabase Vector Store: sobre tu proyecto de Supabase.
- Upstash: base vectorial en la nube que se paga por uso.
- Vectara y Vectara RAG: búsqueda y, en el segundo, respuesta completa dentro de Vectara.
- Weaviate Cloud (v4): sobre Weaviate Cloud, con varios filtros.
Las tres operaciones
Todas las bases tienen el campo Operation, y cada valor muestra sus propios campos y salidas:
| Operation | Qué hace | Qué conectas | Salida que usas |
|---|---|---|---|
| Add | Guarda los fragmentos que llegan a Ingest Data, con su vector. | Un divisor de texto o Metadata Tagger a Ingest Data, y un modelo de vectores a Embedding. | Vector Store, para componentes que leen la base entera, como BM25 Retriever. |
| Search | Busca lo que escribes o conectas en Search Query y devuelve los fragmentos. | La pregunta a Search Query. | Results: los fragmentos, para un prompt, otro componente o un agente que use la base como herramienta. |
| Retriever | No busca por sí misma: entrega un buscador que otro componente usa con su propia pregunta. | Nada más que el modelo de vectores. | Retriever: para Local Rerank, Ensemble Retriever, Multi Query Retriever, el RAG Agent o RetrieverTool. |
Así se conectan las piezas habituales:
- Agente que busca en tus documentos, con reordenación. Base en Retriever → Retriever de Local Rerank → salida Tool de Local Rerank → Tools del Agent. El agente escribe la pregunta y recibe los mejores fragmentos.
- Agente que busca sin reordenar. Base en Search → salida Tool → Tools del Agent.
- Agente especializado en RAG. Base en Retriever → Retrievers del RAG Agent. Puedes conectar varias bases.
- Resultados directos para un prompt. Base en Search con la pregunta en Search Query → Results → tu prompt o tu componente.
Number of Results decide cuántos fragmentos devuelve la base. Si después reordenas, pide más de los que quieres conservar, por ejemplo 12 o 20, y deja que Local Rerank se quede con 4 o 5.
Siguiente paso
Antes de guardar nada, decide cómo trocear y preparar tus documentos: Vectorización y etiquetado.