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.
timescale/pgvectorscale
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.
Alternativa open source a:Pinecone
- Estrellas
- 3,161
- Forks
- 160
- Issues abiertos
- 19
- Último commit
- hace 24 días
¿Qué es?
pgvectorscale es una extensión de PostgreSQL que funciona junto con pgvector, la extensión de código abierto para datos vectoriales, para acelerar la búsqueda aproximada de vecinos más cercanos en columnas de embeddings. Añade un tipo de índice StreamingDiskANN inspirado en la investigación DiskANN de Microsoft, junto con un diseño de almacenamiento comprimido basado en Statistical Binary Quantization.
La extensión también admite búsquedas vectoriales filtradas por etiquetas, de modo que las consultas pueden combinar la clasificación por similitud con filtros de intersección de arrays en una columna smallint[]. También admite cláusulas WHERE arbitrarias, aunque se aplican como filtros posteriores a la búsqueda vectorial. Permite usar distancias coseno, L2 y producto interno con los mismos operadores que pgvector.
El proyecto está escrito en Rust con el framework PGRX, en lugar de C. Se puede ejecutar con una imagen Docker precompilada o compilar desde el código fuente, y también está disponible como extensión en Timescale Cloud.
Funciones clave
- 01Añade un índice StreamingDiskANN para columnas de embeddings de pgvector.
- 02Usa Statistical Binary Quantization para comprimir el almacenamiento de vectores.
- 03Admite búsquedas filtradas por etiquetas mediante el operador de intersección de arrays &&.
- 04Admite operadores de distancia coseno, L2 y producto interno compatibles con pgvector.
- 05Ofrece parámetros ajustables en tiempo de compilación y de consulta para equilibrar precisión y velocidad.
Casos de uso
- Ejecutar búsquedas semánticas o recuperación para RAG dentro de una base de datos PostgreSQL existente.
- Reducir el costo de administrar grandes colecciones de embeddings (decenas de millones de vectores) mediante alojamiento propio en Postgres.
- Filtrar resultados de búsqueda de vecinos más cercanos por etiquetas de categoría o condiciones de metadatos.
Inicio rápido
- 1
Ejecuta la imagen de Docker de TimescaleDB (consulta la documentación de instalación enlazada).
- 2
Conéctate a tu base de datos con psql.
psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" - 3
Crea la extensión pgvectorscale (CASCADE también instala pgvector).
CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
Antes de usarlo
- Debido a un problema pendiente, no se admite la compilación desde el código fuente en máquinas macOS Intel (x86).
- Para instalar desde el código fuente, necesitas una toolchain de Rust y la configuración de compilación de cargo-pgrx.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pgvectorscale?
- 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. pgvectorscale es una extensión de PostgreSQL que funciona junto con pgvector, la extensión de código abierto para datos vectoriales, para acelerar la búsqueda aproximada de vecinos más cercanos en columnas de embeddings. Añade un tipo de índice StreamingDiskANN inspirado en la investigación DiskANN de Microsoft, junto con un diseño de almacenamiento comprimido basado en Statistical Binary Quantization.
- ¿pgvectorscale es gratuito? ¿Qué licencia tiene?
- pgvectorscale es open source bajo la licencia PostgreSQL. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pgvectorscale sigue mantenido?
- Mantenimiento activo. El último commit de pgvectorscale fue el 14 oct 2026.
- ¿Para qué puedo usar pgvectorscale?
- Ejecutar búsquedas semánticas o recuperación para RAG dentro de una base de datos PostgreSQL existente. Reducir el costo de administrar grandes colecciones de embeddings (decenas de millones de vectores) mediante alojamiento propio en Postgres. Filtrar resultados de búsqueda de vecinos más cercanos por etiquetas de categoría o condiciones de metadatos.
- ¿Cómo se instala pgvectorscale?
- Ejecuta la imagen de Docker de TimescaleDB (consulta la documentación de instalación enlazada). Conéctate a tu base de datos con psql.: psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" Crea la extensión pgvectorscale (CASCADE también instala pgvector).: CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
- ¿Dónde consigo pgvectorscale?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/timescale/pgvectorscale
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Compatibilidad con pgvector para Go, con tipos vectoriales y utilidades para pgx, pg, Bun, Ent, GORM y sqlx.
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.
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.
Extensión de código abierto para buscar vectores similares en Postgres y almacenar y consultar embeddings junto con los datos relacionales.