Biblioteca Python que adiciona suporte ao tipo vector do pgvector e à busca por similaridade no Django, SQLAlchemy, Psycopg, asyncpg, Peewee e outros drivers de PostgreSQL.
timescale/pgvectorscale
Extensão do PostgreSQL escrita em Rust que adiciona ao pgvector um índice baseado em DiskANN e filtros por rótulos para buscas vetoriais mais rápidas e baratas.
Alternativa open source a:Pinecone
- Estrelas
- 3,161
- Forks
- 160
- Issues abertas
- 19
- Último commit
- há 24 dias
O que é?
pgvectorscale é uma extensão do PostgreSQL que funciona junto com o pgvector, a extensão open source para dados vetoriais, para acelerar buscas aproximadas por vizinhos mais próximos em colunas de embeddings. Ela adiciona um tipo de índice StreamingDiskANN, inspirado na pesquisa DiskANN da Microsoft, e um layout de armazenamento compactado baseado em Statistical Binary Quantization.
A extensão também oferece suporte a buscas vetoriais filtradas por rótulos, permitindo combinar a classificação por similaridade com filtros de interseção de arrays em uma coluna smallint[]. Também é possível usar cláusulas WHERE arbitrárias, mas elas são aplicadas como filtros posteriores à busca vetorial. As distâncias de cosseno, L2 e produto interno estão disponíveis com os mesmos operadores do pgvector.
O projeto é escrito em Rust com o framework PGRX, em vez de C. Ele pode ser executado por meio de uma imagem Docker pré-compilada ou compilado a partir do código-fonte, e também está disponível como extensão no Timescale Cloud.
Recursos principais
- 01Adiciona um índice StreamingDiskANN para colunas de embeddings do pgvector.
- 02Usa Statistical Binary Quantization para compactar o armazenamento de vetores.
- 03Oferece suporte a buscas filtradas por rótulos usando o operador de interseção de arrays &&.
- 04Oferece suporte aos operadores de distância de cosseno, L2 e produto interno compatíveis com o pgvector.
- 05Oferece parâmetros ajustáveis durante a criação do índice e as consultas para equilibrar precisão e velocidade.
Casos de uso
- Executar buscas semânticas ou recuperação para RAG dentro de um banco de dados PostgreSQL existente.
- Reduzir o custo de grandes coleções de embeddings (dezenas de milhões de vetores) hospedando-as no próprio PostgreSQL.
- Filtrar resultados de vizinhos mais próximos por rótulos de categoria ou condições de metadados.
Início rápido
- 1
Execute a imagem Docker do TimescaleDB (consulte a documentação de instalação vinculada).
- 2
Conecte-se ao banco de dados com o psql.
psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" - 3
Crie a extensão pgvectorscale (CASCADE também instala o pgvector).
CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
Antes de usar
- Devido a um problema em aberto, não há suporte à compilação a partir do código-fonte em máquinas macOS Intel (x86).
- A instalação a partir do código-fonte requer uma toolchain Rust e a configuração de build do cargo-pgrx.
Em coleções
Tópicos
Perguntas frequentes
- O que é pgvectorscale?
- Extensão do PostgreSQL escrita em Rust que adiciona ao pgvector um índice baseado em DiskANN e filtros por rótulos para buscas vetoriais mais rápidas e baratas. pgvectorscale é uma extensão do PostgreSQL que funciona junto com o pgvector, a extensão open source para dados vetoriais, para acelerar buscas aproximadas por vizinhos mais próximos em colunas de embeddings. Ela adiciona um tipo de índice StreamingDiskANN, inspirado na pesquisa DiskANN da Microsoft, e um layout de armazenamento compactado baseado em Statistical Binary Quantization.
- pgvectorscale é gratuito? Qual é a licença?
- pgvectorscale é open source sob a licença PostgreSQL. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pgvectorscale ainda é mantido?
- Manutenção ativa. O último commit de pgvectorscale foi em 14 de out. de 2026.
- Para que posso usar pgvectorscale?
- Executar buscas semânticas ou recuperação para RAG dentro de um banco de dados PostgreSQL existente. Reduzir o custo de grandes coleções de embeddings (dezenas de milhões de vetores) hospedando-as no próprio PostgreSQL. Filtrar resultados de vizinhos mais próximos por rótulos de categoria ou condições de metadados.
- Como instalar pgvectorscale?
- Execute a imagem Docker do TimescaleDB (consulte a documentação de instalação vinculada). Conecte-se ao banco de dados com o psql.: psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" Crie a extensão pgvectorscale (CASCADE também instala o pgvector).: CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
- Onde consigo pgvectorscale?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/timescale/pgvectorscale
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Suporte em Go à extensão pgvector do PostgreSQL, com tipos para vetores e helpers para pgx, pg, Bun, Ent, GORM e sqlx.
O Qdrant é um mecanismo de busca por similaridade vetorial e banco de dados vetorial baseado em Rust, com filtragem por payload, voltado a busca semântica e recomendações.
Biblioteca auxiliar para JavaScript e TypeScript que adiciona suporte ao tipo vetorial do pgvector em clientes de banco de dados e ORMs para Node.js, Deno e Bun.
Milvus é um banco de dados vetorial distribuído e open source para armazenar e pesquisar embeddings em grande escala, usado em buscas com IA e aplicações de RAG.
Extensão open source de busca por similaridade vetorial para Postgres, que armazena e consulta embeddings junto aos seus dados relacionais.