Sistemas de almacenamiento especializados en indexar y buscar vectores de alta dimensión de forma eficiente, habilitando búsqueda semántica y aplicaciones de RAG a escala.
Una base de datos vectorial es un sistema de almacenamiento optimizado para guardar, indexar y buscar vectores de alta dimensión — típicamente embeddings generados por modelos de IA. A diferencia de las bases de datos tradicionales que buscan por coincidencia exacta, las bases vectoriales encuentran los vectores más similares a una consulta.
Son la infraestructura fundamental para búsqueda semántica y RAG a escala.
Buscar el vector más cercano entre millones requiere comparar distancias con cada uno — O(n) por consulta. Las bases vectoriales usan índices aproximados (ANN — Approximate Nearest Neighbors) que reducen esto a O(log n) o mejor, sacrificando precisión perfecta por velocidad práctica.
HNSW tiene dos parámetros clave que controlan el tradeoff entre velocidad y recall:
| Parámetro | Efecto al aumentar | Valor típico |
|---|---|---|
m (conexiones por nodo) | Mejor recall, más memoria | 16–64 |
ef_construction (candidatos al construir) | Mejor calidad del índice, construcción más lenta | 100–200 |
ef_search (candidatos al buscar) | Mejor recall, búsqueda más lenta | 50–200 |
La regla práctica: empezar con m=16, ef_construction=128, ef_search=64 y ajustar midiendo recall@10 contra búsqueda exacta.
| Base | Características |
|---|---|
| Pinecone | Serverless, managed, fácil de empezar |
| Weaviate | Open-source, GraphQL, módulos de ML integrados |
| Qdrant | Open-source, Rust, filtros avanzados |
| Milvus | Open-source, escalable, CNCF project |
| Chroma | Open-source, embebible, ideal para prototipos |
| Base | Extensión |
|---|---|
| PostgreSQL | pgvector |
| Elasticsearch | Dense vector field |
| Redis | Redis Stack (RediSearch) |
| MongoDB | Atlas Vector Search |
pgvector es la opción más pragmática cuando ya tienes PostgreSQL — evita agregar otro servicio a la infraestructura.
-- Habilitar la extensión y crear tabla
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT NOT NULL,
metadata JSONB DEFAULT '{}',
embedding vector(1536)
);
-- Crear índice HNSW para búsqueda rápida
CREATE INDEX ON documents
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 128);
-- Búsqueda semántica: los 5 documentos más similares
SELECT id, content, 1 - (embedding <=> $1::vector) AS similarity
FROM documents
ORDER BY embedding <=> $1::vector
LIMIT 5;La búsqueda puramente vectorial falla cuando el usuario busca un término exacto (un nombre de producto, un código de error). La búsqueda híbrida combina similitud semántica con búsqueda de texto completo:
-- Búsqueda híbrida: combinar vector + full-text con RRF
WITH semantic AS (
SELECT id, ROW_NUMBER() OVER (ORDER BY embedding <=> $1::vector) AS rank_s
FROM documents
LIMIT 20
),
keyword AS (
SELECT id, ROW_NUMBER() OVER (ORDER BY ts_rank(to_tsvector(content), plainto_tsquery($2)) DESC) AS rank_k
FROM documents
WHERE to_tsvector(content) @@ plainto_tsquery($2)
LIMIT 20
)
SELECT COALESCE(s.id, k.id) AS id,
COALESCE(1.0 / (60 + s.rank_s), 0) + COALESCE(1.0 / (60 + k.rank_k), 0) AS rrf_score
FROM semantic s FULL OUTER JOIN keyword k ON s.id = k.id
ORDER BY rrf_score DESC
LIMIT 5;Este patrón usa Reciprocal Rank Fusion (RRF) para combinar los rankings de ambas búsquedas. La constante 60 es el valor estándar que suaviza la fusión.
Las bases de datos vectoriales son la infraestructura que hace posible la búsqueda semántica y RAG a escala. Para equipos que ya usan PostgreSQL, pgvector elimina la necesidad de un servicio adicional y cubre la mayoría de casos hasta millones de vectores. Cuando el volumen supera eso o se necesitan filtros complejos con baja latencia, las bases dedicadas como Qdrant o Pinecone justifican la complejidad operacional adicional.
Representaciones vectoriales densas que capturan el significado semántico de texto, imágenes u otros datos en un espacio numérico donde la proximidad refleja similitud conceptual.
Técnica de recuperación de información que utiliza embeddings vectoriales para encontrar resultados por significado, no solo por coincidencia exacta de palabras clave.
Patrón arquitectónico que combina la recuperación de información de fuentes externas con la generación de texto por LLMs, reduciendo alucinaciones y manteniendo el conocimiento actualizado sin reentrenar el modelo.
Crónica de construir un segundo cerebro con grafo de conocimiento, pipeline bilingüe y endpoints para agentes — en días, no semanas, y lo que eso enseña sobre la brecha entre teoría y sistemas que funcionan.