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.
pgvector/pgvector-go
Suporte em Go à extensão pgvector do PostgreSQL, com tipos para vetores e helpers para pgx, pg, Bun, Ent, GORM e sqlx.
- Estrelas
- 356
- Forks
- 16
- Issues abertas
- 0
- Último commit
- ontem
O que é?
pgvector-go é uma biblioteca Go que permite às aplicações armazenar e consultar embeddings vetoriais no PostgreSQL usando a extensão pgvector. Ela oferece tipos Go para vetores densos, half vectors e vetores esparsos, além de adapters para usar esses tipos diretamente com pgx, pg, Bun, Ent, GORM e sqlx.
A biblioteca cobre o fluxo de trabalho mais comum: habilitar a extensão, definir uma coluna vetorial, inserir embeddings e executar consultas de vizinhos mais próximos com operadores de distância como L2, produto interno e cosseno. Ela também mostra como criar índices HNSW ou IVFFlat para buscas aproximadas. A integração com Ent inclui helpers para várias funções de distância.
Os exemplos do repositório abrangem embeddings da OpenAI e da Cohere, busca híbrida com Reciprocal Rank Fusion, busca esparsa, recomendações, escalabilidade horizontal com Citus e carregamento em massa com COPY.
Recursos principais
- 01Tipos Go para vetores densos, half vectors e vetores esparsos
- 02Adapters para pgx, pg, Bun, Ent, GORM e sqlx
- 03Consultas de vizinhos mais próximos com operadores de distância L2, produto interno e cosseno
- 04Exemplos de criação de índices HNSW e IVFFlat
- 05Exemplos com OpenAI, Cohere, busca híbrida e carregamento em massa com COPY
Casos de uso
- Adicionar busca semântica ou recuperação de informações a um serviço Go com PostgreSQL
- Armazenar embeddings de texto ou imagem junto com dados relacionais
- Criar recursos de recomendação que classificam itens por similaridade vetorial
- Carregar grandes conjuntos de dados de embeddings no PostgreSQL com eficiência
Início rápido
- 1
Instale o pacote principal de Go
go get github.com/pgvector/pgvector-go - 2
Instale o pacote de integração do pgx
go get github.com/pgvector/pgvector-go/pgx - 3
Ative a extensão pgvector no PostgreSQL
CREATE EXTENSION IF NOT EXISTS vector
Antes de usar
- Requer PostgreSQL com a extensão pgvector instalada no servidor.
Em coleções
Tópicos
Perguntas frequentes
- O que é pgvector-go?
- Suporte em Go à extensão pgvector do PostgreSQL, com tipos para vetores e helpers para pgx, pg, Bun, Ent, GORM e sqlx. pgvector-go é uma biblioteca Go que permite às aplicações armazenar e consultar embeddings vetoriais no PostgreSQL usando a extensão pgvector. Ela oferece tipos Go para vetores densos, half vectors e vetores esparsos, além de adapters para usar esses tipos diretamente com pgx, pg, Bun, Ent, GORM e sqlx.
- pgvector-go é gratuito? Qual é a licença?
- pgvector-go é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pgvector-go ainda é mantido?
- Manutenção ativa. O último commit de pgvector-go foi em 5 de nov. de 2026.
- Para que posso usar pgvector-go?
- Adicionar busca semântica ou recuperação de informações a um serviço Go com PostgreSQL Armazenar embeddings de texto ou imagem junto com dados relacionais Criar recursos de recomendação que classificam itens por similaridade vetorial Carregar grandes conjuntos de dados de embeddings no PostgreSQL com eficiência
- Como instalar pgvector-go?
- Instale o pacote principal de Go: go get github.com/pgvector/pgvector-go Instale o pacote de integração do pgx: go get github.com/pgvector/pgvector-go/pgx Ative a extensão pgvector no PostgreSQL: CREATE EXTENSION IF NOT EXISTS vector
- Onde consigo pgvector-go?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pgvector/pgvector-go
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
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.
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.
Extensão open source de busca por similaridade vetorial para Postgres, que armazena e consulta embeddings junto aos seus dados relacionais.