Repolode
timescale

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

    Execute a imagem Docker do TimescaleDB (consulte a documentação de instalação vinculada).

  2. 2

    Conecte-se ao banco de dados com o psql.

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