Bases de datos vectoriales explicadas: cómo funciona la búsqueda vectorial en 2026
Una base de datos normal encuentra coincidencias exactas. Una base de datos vectorial encuentra cosas que significan lo mismo. Descubre cómo funciona y cuándo necesitas una.
- Un embedding convierte texto, imágenes o audio en una lista de números que captura el significado.
- Una base de datos vectorial almacena embeddings y encuentra rápido los más cercanos.
- Impulsa la búsqueda semántica, las recomendaciones y RAG.
- Si ya usas PostgreSQL, pgvector puede ser todo lo que necesitas.
Busca “sitios baratos para dormir en Goa” en un sistema que solo usa palabras clave y puede que se le escape una página que dice “hoteles económicos en Goa”. Las palabras son distintas, pero el significado es el mismo. La búsqueda vectorial cierra esa brecha.
Por qué se queda corta la búsqueda por palabras clave
La búsqueda tradicional compara palabras. Tiene problemas con los sinónimos, las erratas y las preguntas escritas en lenguaje natural. La gente no siempre usa las palabras exactas de tus documentos, así que se pierden buenos resultados.
¿Qué son los embeddings?
Un embedding es una lista de números, un vector, que representa el significado de un dato. Lo crea un modelo de embeddings. Los significados parecidos dan vectores que quedan cerca unos de otros.
"hotel económico" -> [0.12, -0.80, 0.33, ...]
"sitio barato para quedarse" -> [0.11, -0.78, 0.35, ...] # muy cerca
"física cuántica" -> [-0.60, 0.20, 0.91, ...] # lejos
Los embeddings reales tienen cientos o miles de números. Puedes crearlos para texto, imágenes, audio y código.
¿Qué es una base de datos vectorial?
Una base de datos vectorial almacena embeddings, además de los datos originales y detalles extra como etiquetas, fechas e IDs. Está hecha para responder rápido a una pregunta: “¿Qué vectores almacenados están más cerca de este?”
Cómo funciona la búsqueda por similitud
La base de datos compara el vector de la consulta con los vectores almacenados usando una medida de distancia:
| Medida | Idea | Uso habitual |
|---|---|---|
| Similitud del coseno | Compara la dirección de dos vectores | Búsqueda de texto |
| Distancia euclídea | Distancia en línea recta entre puntos | Uso general |
| Producto escalar | Dirección y tamaño a la vez | Recomendaciones |
Comprobar cada vector uno por uno es exacto pero lento con millones de filas. Por eso las bases de datos usan la búsqueda de vecinos más cercanos aproximada (ANN): es algo menos exacta pero mucho más rápida.
Índices: HNSW e IVF
- HNSW (Hierarchical Navigable Small World) construye un grafo por capas. Una búsqueda salta entre las capas para llegar rápido a los puntos más cercanos. Es rápido y preciso, pero usa más memoria.
- IVF (inverted file) agrupa los vectores en clústeres y busca solo en los clústeres más cercanos. Usa menos memoria, pero necesita ajustes.
Ambos cambian un poco de precisión por mucha velocidad. Ajustas la configuración hasta que el equilibrio sea el adecuado para tu aplicación.
Un ejemplo sencillo con pgvector
pgvector es una extensión que añade búsqueda vectorial a PostgreSQL. Si conoces SQL, te resultará familiar.
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE docs (
id SERIAL PRIMARY KEY,
content TEXT,
embedding VECTOR(3) -- los modelos reales usan muchas más dimensiones
);
INSERT INTO docs (content, embedding) VALUES
('hotel económico en Goa', '[0.12, -0.80, 0.33]'),
('apuntes de física cuántica','[-0.60, 0.20, 0.91]');
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
SELECT content
FROM docs
ORDER BY embedding <=> '[0.11, -0.78, 0.35]'
LIMIT 3;
El operador <=> significa distancia del coseno. La consulta devuelve primero las filas más cercanas. Puedes ejecutar PostgreSQL en un contenedor para probarlo; consulta nuestro tutorial de Docker.
Casos de uso reales
- Búsqueda semántica: encuentra artículos de ayuda por significado.
- Chatbots RAG: obtén los pasajes adecuados para que un LLM responda a partir de ellos. Lee RAG vs fine-tuning vs prompt engineering.
- Recomendaciones: sugiere productos o vídeos similares a los que le gustaron a un usuario.
- Búsqueda de imágenes y audio: encuentra fotos o sonidos parecidos.
- Detección de duplicados y fraude: detecta casi-copias y patrones raros.
- Memoria de agentes: permite a los agentes de IA recordar notas pasadas. Consulta las buenas prácticas de agentes de IA.
Cómo elegir una base de datos vectorial
| Opción | Es buena cuando |
|---|---|
| pgvector en PostgreSQL | Ya usas Postgres y tienes hasta unos pocos millones de vectores |
| Base de datos vectorial dedicada (por ejemplo Qdrant, Milvus, Weaviate, Pinecone) | Necesitas una escala muy grande, funciones especiales o un servicio gestionado |
| Motores de búsqueda con soporte vectorial (por ejemplo Elasticsearch, OpenSearch) | Ya los ejecutas y quieres mezclar búsqueda por palabras clave y vectorial |
| Biblioteca en memoria (por ejemplo FAISS) | Quieres un prototipo local rápido |
Revisa estos puntos: tamaño de los datos, velocidad de consulta, filtrado, coste, alojamiento y lo bien que encaja con tu stack actual. Muchos equipos empiezan con pgvector y solo se mudan después si es necesario.
Errores frecuentes
- Tamaño de fragmento incorrecto. Los fragmentos demasiado grandes o demasiado pequeños dan malas coincidencias.
- Mezclar modelos. La consulta y los documentos deben usar el mismo modelo de embeddings.
- Sin filtros. Combina la búsqueda vectorial con filtros, como el idioma o la fecha.
- Sin pruebas. Crea un conjunto de consultas reales y comprueba que aparecen los resultados correctos.
- Datos obsoletos. Vuelve a generar los embeddings cuando cambien los documentos.
Preguntas frecuentes
¿Qué es una base de datos vectorial en palabras sencillas?
Es una base de datos que almacena el significado de los datos como números y encuentra elementos con un significado parecido, no solo palabras coincidentes.
¿Necesito una base de datos vectorial para RAG?
Normalmente sí, para buscar en tus documentos por significado. Con pocos datos, un índice sencillo en tu base de datos actual puede bastar.
¿Es suficiente pgvector?
Para muchas aplicaciones, sí. Mantiene todo en una sola base de datos. Para una escala enorme o necesidades especiales, una base de datos dedicada puede encajar mejor.
¿Cuál es la diferencia entre SQL y la búsqueda vectorial?
SQL encuentra coincidencias exactas y rangos. La búsqueda vectorial encuentra el significado más cercano. Muchas aplicaciones usan ambas a la vez.
¿Qué es HNSW?
Es un tipo de índice que construye un grafo por capas para que la base de datos pueda encontrar rápidamente a los vecinos más cercanos.
Sigue aprendiendo
¿Necesitas ayuda con testing, WordPress o SEO?
Ayudamos a los equipos a lanzar mejor software y a hacer crecer sus sitios. Cuéntanos en qué trabajas y te sugeriremos un siguiente paso claro.
Más guías sobre testing, IA y desarrollo moderno
¿Te gustó este artículo? Elige otro tutorial y sigue aprendiendo.
Vibe coding en 2026: cómo la IA está cambiando el desarrollo de software
Vibe coding significa crear software describiéndole a una IA lo que quieres. Aprende cómo funciona, dónde brilla, dónde falla y cómo mantener seguro el código escrito por IA.
Leer artículo →Pruebas de softwarePruebas de API con Postman: guía completa para principiantes y testers de QA
Aprende pruebas de API con Postman desde cero. Envía solicitudes, lee códigos de estado, añade autenticación, escribe scripts de prueba, crea colecciones y ejecútalas en CI, con ejemplos claros.
Leer artículo →DevOpsGitHub Actions CI/CD: automatiza compilaciones, pruebas y despliegues
Aprende GitHub Actions desde cero. Crea un workflow de CI/CD que ejecute pruebas, compile tu aplicación y la despliegue, con ejemplos sencillos de YAML, secretos y buenas prácticas.
Leer artículo →