Esto permite resolver búsquedas semánticas y casos de RAG con menos piezas operativas, manteniendo texto, metadatos y vectores dentro de la misma base.
Cuándo conviene aplicarlo
pgvector puede ser útil en escenarios como:
- RAG interno.
- Buscadores semánticos.
- Recomendaciones simples.
- Prototipos con datos relacionales.
Requisitos previos
Antes de empezar, conviene contar con:
- PostgreSQL compatible.
- Extensión
pgvectorinstalada. - Embeddings generados por la aplicación.
- Backups antes de migrar.
Arquitectura de trabajo
El flujo recomendado conecta cinco etapas:
- Documento.
- Embedding.
- PostgreSQL.
- Índice vectorial.
- Consulta similar.
La idea es validar cada etapa antes de pasar a la siguiente, conservar un punto de retorno y evitar cambios invisibles en producción.
Paso 1: Instalar la extensión
La extensión habilita el tipo vector dentro de la base.
sudo apt install postgresql-18-pgvector
psql appdb -c 'CREATE EXTENSION IF NOT EXISTS vector;'Paso 2: Crear la tabla de documentos
La tabla guarda texto, metadatos y embedding en la misma transacción.
CREATE TABLE documentos (
id bigserial PRIMARY KEY,
titulo text NOT NULL,
contenido text NOT NULL,
embedding vector(768)
);Paso 3: Insertar embeddings
La aplicación calcula el vector y lo envía como parámetro SQL.
INSERT INTO documentos (titulo, contenido, embedding)
VALUES ('runbook ssh', 'pasos de recuperacion...', '[0.01,0.02,...]');Paso 4: Crear un índice aproximado
El índice mejora las consultas de similitud cuando crece la cantidad de documentos.
CREATE INDEX documentos_embedding_hnsw
ON documentos USING hnsw (embedding vector_cosine_ops);Paso 5: Consultar documentos similares
La consulta ordena por distancia para recuperar los documentos más cercanos al embedding de la pregunta.
SELECT titulo, contenido
FROM documentos
ORDER BY embedding <=> '[0.03,0.01,...]'
LIMIT 5;Pruebas de funcionamiento
Antes de mover el cambio a producción, ejecuta las validaciones del último paso y revisa:
- Logs.
- Salida del comando.
- Estado del servicio.
Si el cambio afecta datos, restaura o prueba en un entorno aislado antes de operar sobre información real.
Advertencias de seguridad
Ten en cuenta estos puntos antes de usar embeddings en producción:
- No mezcles embeddings de modelos con dimensiones diferentes.
- Respeta los permisos de los documentos al recuperar contexto.
- Evalúa la privacidad antes de guardar texto sensible.
Problemas frecuentes
Error de dimensión
La columna vector(n) debe coincidir con la dimensión del modelo de embeddings.
Consulta lenta
Crea el índice y ejecuta ANALYZE después de cargar los datos.
Buenas prácticas para producción
Para operar con más control:
- Versiona el modelo de embedding.
- Mide calidad con preguntas reales.
- Combina búsqueda semántica y filtros SQL.
- Realiza backups antes de reindexar.
