Repolode
nmslib

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