Extensión de PostgreSQL escrita en Rust que añade un índice basado en DiskANN y filtros por etiquetas a pgvector para acelerar las búsquedas vectoriales y reducir su costo.
pgvector/pgvector-go
Compatibilidad con pgvector para Go, con tipos vectoriales y utilidades para pgx, pg, Bun, Ent, GORM y sqlx.
- Estrellas
- 356
- Forks
- 16
- Issues abiertos
- 0
- Último commit
- anteayer
¿Qué es?
pgvector-go es una biblioteca de Go que permite a las aplicaciones almacenar y consultar embeddings vectoriales en PostgreSQL mediante la extensión pgvector. Ofrece tipos de Go para vectores densos, half vectors y vectores dispersos, además de adaptadores para que estos tipos funcionen directamente con pgx, pg, Bun, Ent, GORM y sqlx.
La biblioteca cubre el flujo de trabajo habitual: habilitar la extensión, definir una columna vectorial, insertar embeddings y ejecutar consultas de vecinos más cercanos con operadores de distancia como L2, producto interno y coseno. También muestra cómo crear índices HNSW o IVFFlat para búsquedas aproximadas. La integración con Ent incluye utilidades para varias funciones de distancia.
Los ejemplos del repositorio abarcan embeddings de OpenAI y Cohere, búsqueda híbrida con Reciprocal Rank Fusion, búsqueda dispersa, recomendaciones, escalado horizontal con Citus y carga masiva con COPY.
Funciones clave
- 01Tipos de Go para vectores densos, half vectors y vectores dispersos
- 02Adaptadores para pgx, pg, Bun, Ent, GORM y sqlx
- 03Consultas de vecinos más cercanos con operadores de distancia L2, producto interno y coseno
- 04Ejemplos de creación de índices HNSW e IVFFlat
- 05Ejemplos de OpenAI, Cohere, búsqueda híbrida y carga masiva con COPY
Casos de uso
- Añadir búsqueda semántica o recuperación de información a un servicio de Go respaldado por PostgreSQL
- Almacenar embeddings de texto o imágenes junto con datos relacionales
- Crear funciones de recomendación que ordenen elementos según su similitud vectorial
- Cargar grandes conjuntos de datos de embeddings en PostgreSQL de forma eficiente
Inicio rápido
- 1
Instala el paquete principal de Go
go get github.com/pgvector/pgvector-go - 2
Instala el paquete de integración de pgx
go get github.com/pgvector/pgvector-go/pgx - 3
Activa la extensión pgvector en PostgreSQL
CREATE EXTENSION IF NOT EXISTS vector
Antes de usarlo
- Requiere PostgreSQL con la extensión pgvector instalada en el servidor.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pgvector-go?
- Compatibilidad con pgvector para Go, con tipos vectoriales y utilidades para pgx, pg, Bun, Ent, GORM y sqlx. pgvector-go es una biblioteca de Go que permite a las aplicaciones almacenar y consultar embeddings vectoriales en PostgreSQL mediante la extensión pgvector. Ofrece tipos de Go para vectores densos, half vectors y vectores dispersos, además de adaptadores para que estos tipos funcionen directamente con pgx, pg, Bun, Ent, GORM y sqlx.
- ¿pgvector-go es gratuito? ¿Qué licencia tiene?
- pgvector-go es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pgvector-go sigue mantenido?
- Mantenimiento activo. El último commit de pgvector-go fue el 5 nov 2026.
- ¿Para qué puedo usar pgvector-go?
- Añadir búsqueda semántica o recuperación de información a un servicio de Go respaldado por PostgreSQL Almacenar embeddings de texto o imágenes junto con datos relacionales Crear funciones de recomendación que ordenen elementos según su similitud vectorial Cargar grandes conjuntos de datos de embeddings en PostgreSQL de forma eficiente
- ¿Cómo se instala pgvector-go?
- Instala el paquete principal de Go: go get github.com/pgvector/pgvector-go Instala el paquete de integración de pgx: go get github.com/pgvector/pgvector-go/pgx Activa la extensión pgvector en PostgreSQL: CREATE EXTENSION IF NOT EXISTS vector
- ¿Dónde consigo pgvector-go?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pgvector/pgvector-go
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de Python que incorpora compatibilidad con el tipo vectorial de pgvector y la búsqueda por similitud en Django, SQLAlchemy, Psycopg, asyncpg, Peewee y otros drivers de PostgreSQL.
Biblioteca auxiliar para JavaScript y TypeScript que añade compatibilidad con el tipo vector de pgvector a clientes de bases de datos y ORMs de Node.js, Deno y Bun.
Milvus es una base de datos vectorial distribuida y de código abierto para almacenar y buscar embeddings a gran escala, utilizada en búsquedas con IA y aplicaciones RAG.
Qdrant es un motor de búsqueda de similitud vectorial y una base de datos vectorial basado en Rust, con filtros por payload, para búsquedas semánticas y recomendaciones.
Extensión de código abierto para buscar vectores similares en Postgres y almacenar y consultar embeddings junto con los datos relacionales.