Repolode
timescale

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. 1

    Ejecuta la imagen de Docker de TimescaleDB (consulta la documentación de instalación enlazada).

  2. 2

    Conéctate a tu base de datos con psql.

    psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>"
  3. 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