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.
nmslib/hnswlib
Biblioteca C++ header-only com bindings para Python para busca aproximada e rápida de vizinhos mais próximos usando o algoritmo de grafo HNSW.
- Estrelas
- 5,364
- Forks
- 862
- Issues abertas
- 311
- Último commit
- há 2 meses
O que é?
Hnswlib é uma implementação C++ header-only de grafos Hierarchical Navigable Small World (HNSW) para busca aproximada de vizinhos mais próximos. Ela indexa vetores de alta dimensionalidade para encontrar correspondências próximas a um vetor de consulta muito mais rápido do que por comparação exaustiva, mas retorna resultados aproximados, não necessariamente os vizinhos mais próximos exatos.
A biblioteca inclui bindings para Python que funcionam com arrays NumPy e oferecem suporte às distâncias L2, produto interno e cosseno. Os índices podem ser construídos incrementalmente, atualizados reinserindo rótulos, marcados como excluídos e salvos em disco ou carregados dele. Também é possível serializar índices do Python com pickle. Funções de distância personalizadas podem ser fornecidas em C++.
O núcleo em C++ não tem dependências além de C++11. Versões recentes adicionam salvamento e carregamento baseados em streams e uma API opcional sem exceções para compilações feitas com -fno-exceptions.
Recursos principais
- 01Implementação C++ header-only, sem dependências além de C++11.
- 02Bindings para Python com arrays NumPy e suporte às distâncias L2, produto interno e cosseno.
- 03Inserção incremental, atualização de rótulos existentes e marcação de itens como excluídos.
- 04Salvamento e carregamento de índices em disco, além de suporte a pickle no Python.
- 05Busca filtrada com uma função booleana e distâncias personalizadas em C++.
Casos de uso
- Criar um backend de busca semântica ou recomendação usando vetores de embeddings.
- Encontrar imagens ou produtos semelhantes com base em seus vetores de características.
- Adicionar um índice rápido de vizinhos mais próximos a uma aplicação C++ sem incluir uma dependência grande.
- Manter um índice vetorial em que itens são adicionados, atualizados ou removidos com frequência.
Antes de usar
- O README descreve a versão 0.10.0rc2, uma versão candidata que não deve ser considerada estável.
- A busca filtrada em Python é limitada pelo GIL e funciona lentamente no modo multithread.
Em coleções
Tópicos
Perguntas frequentes
- O que é hnswlib?
- Biblioteca C++ header-only com bindings para Python para busca aproximada e rápida de vizinhos mais próximos usando o algoritmo de grafo HNSW. Hnswlib é uma implementação C++ header-only de grafos Hierarchical Navigable Small World (HNSW) para busca aproximada de vizinhos mais próximos. Ela indexa vetores de alta dimensionalidade para encontrar correspondências próximas a um vetor de consulta muito mais rápido do que por comparação exaustiva, mas retorna resultados aproximados, não necessariamente os vizinhos mais próximos exatos.
- hnswlib é gratuito? Qual é a licença?
- hnswlib é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- hnswlib ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de hnswlib foi em 15 de set. de 2026.
- Para que posso usar hnswlib?
- Criar um backend de busca semântica ou recomendação usando vetores de embeddings. Encontrar imagens ou produtos semelhantes com base em seus vetores de características. Adicionar um índice rápido de vizinhos mais próximos a uma aplicação C++ sem incluir uma dependência grande. Manter um índice vetorial em que itens são adicionados, atualizados ou removidos com frequência.
- Onde consigo hnswlib?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/nmslib/hnswlib
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca C++ para busca aproximada de vizinhos mais próximos em vetores em larga escala, com ferramentas para criar índices, pesquisar e distribuir o serviço.
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.
Extensão open source de busca por similaridade vetorial para Postgres, que armazena e consulta embeddings junto aos seus dados relacionais.
Biblioteca C++ de arquivo único para busca aproximada de vizinhos mais próximos e clustering de vetores, com bindings para Python, JavaScript, Rust, Java, Go, Swift e outras linguagens.
Biblioteca C++ com bindings para Python que permite fazer busca por similaridade e clustering eficientes de vetores densos, com aceleração opcional por GPU.