Saltar al contenido principal

pgvector

Extensión de PostgreSQL que añade tipos de datos vectoriales e índices HNSW e IVFFlat. Permite hacer búsqueda semántica directamente en una base de datos PostgreSQL existente, sin infraestructura adicional.

CREATE EXTENSION vector;

CREATE TABLE documentos (
id SERIAL PRIMARY KEY,
contenido TEXT,
embedding vector(768)
);

-- Búsqueda de los 5 más similares
SELECT contenido
FROM documentos
ORDER BY embedding <=> '[0.1, 0.2, ...]'
LIMIT 5;

Puntos fuertes

  • Cero infraestructura adicional si ya usas PostgreSQL
  • Índices HNSW e IVFFlat nativos
  • Operadores de distancia: <=> (coseno), <-> (euclidiana), <#> (producto interno)
  • Compatible con todas las herramientas del ecosistema PostgreSQL (backups, réplicas, RLS...)

Cuándo usarlo: si ya tienes PostgreSQL y esperas menos de 20–30M vectores. Elimina la necesidad de mantener un sistema adicional.

Ver el experimento: Búsqueda semántica en PostgreSQL con pgvector

Referencias