Qdrant es un motor de búsqueda de similitud vectorial y una base de datos vectorial basado en Rust, con filtros por payload, para búsquedas semánticas y recomendaciones.
nmslib/hnswlib
Biblioteca C++ header-only con bindings para Python que permite buscar vecinos aproximados rápidamente mediante el algoritmo de grafos HNSW.
- Estrellas
- 5,364
- Forks
- 862
- Issues abiertos
- 311
- Último commit
- hace 2 meses
¿Qué es?
Hnswlib es una implementación en C++ header-only de grafos Hierarchical Navigable Small World (HNSW) para buscar vecinos aproximados. Indexa vectores de alta dimensionalidad para encontrar las coincidencias más cercanas a un vector de consulta mucho más rápido que con una comparación por fuerza bruta, a cambio de devolver resultados que son aproximados, no necesariamente los más cercanos exactos.
La biblioteca incluye bindings para Python compatibles con arrays de NumPy y admite distancias L2, de producto interno y coseno. Los índices se pueden crear de forma incremental, actualizar volviendo a insertar etiquetas, marcar como eliminados y guardar o cargar desde el disco. También se pueden serializar con pickle los índices de Python. En C++ se pueden proporcionar funciones de distancia personalizadas.
El núcleo de C++ no tiene dependencias aparte de C++11. Las versiones recientes incorporan operaciones de guardado y carga basadas en streams y una API opcional sin excepciones para compilaciones con -fno-exceptions.
Funciones clave
- 01Implementación en C++ header-only, sin dependencias aparte de C++11.
- 02Bindings para Python compatibles con arrays de NumPy y distancias L2, de producto interno y coseno.
- 03Inserción incremental, actualización de etiquetas existentes y marcado de elementos como eliminados.
- 04Guardado y carga de índices desde el disco, además de compatibilidad con pickle en Python.
- 05Búsqueda filtrada mediante una función booleana y distancias personalizadas en C++.
Casos de uso
- Crear un backend de búsqueda semántica o recomendaciones con vectores de embeddings.
- Encontrar imágenes o productos similares a partir de sus vectores de características.
- Añadir un índice rápido de vecinos más cercanos a una aplicación en C++ sin incorporar una dependencia grande.
- Mantener un índice vectorial cuyos elementos se agregan, actualizan o eliminan con frecuencia.
Antes de usarlo
- El README describe la versión 0.10.0rc2, una versión candidata que no debe considerarse estable.
- La búsqueda filtrada en Python está limitada por el GIL y funciona lentamente en modo multihilo.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es hnswlib?
- Biblioteca C++ header-only con bindings para Python que permite buscar vecinos aproximados rápidamente mediante el algoritmo de grafos HNSW. Hnswlib es una implementación en C++ header-only de grafos Hierarchical Navigable Small World (HNSW) para buscar vecinos aproximados. Indexa vectores de alta dimensionalidad para encontrar las coincidencias más cercanas a un vector de consulta mucho más rápido que con una comparación por fuerza bruta, a cambio de devolver resultados que son aproximados, no necesariamente los más cercanos exactos.
- ¿hnswlib es gratuito? ¿Qué licencia tiene?
- hnswlib es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿hnswlib sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de hnswlib fue el 15 sept 2026.
- ¿Para qué puedo usar hnswlib?
- Crear un backend de búsqueda semántica o recomendaciones con vectores de embeddings. Encontrar imágenes o productos similares a partir de sus vectores de características. Añadir un índice rápido de vecinos más cercanos a una aplicación en C++ sin incorporar una dependencia grande. Mantener un índice vectorial cuyos elementos se agregan, actualizan o eliminan con frecuencia.
- ¿Dónde consigo hnswlib?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/nmslib/hnswlib
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de C++ para búsquedas aproximadas de vecinos más cercanos a gran escala, con herramientas para crear índices, buscar y ofrecer servicio distribuido.
Extensión de PostgreSQL escrita en Rust que añade un índice basado en DiskANN y filtros por etiquetas a pgvector para acelerar las búsquedas vectoriales y reducir su costo.
Extensión de código abierto para buscar vectores similares en Postgres y almacenar y consultar embeddings junto con los datos relacionales.
Biblioteca de C++ en un solo archivo para búsqueda aproximada de vecinos más cercanos y clustering de vectores, con bindings para Python, JavaScript, Rust, Java, Go, Swift y más.
Biblioteca de C++ con bindings para Python para buscar similitudes y agrupar vectores densos de forma eficiente, con aceleración opcional mediante GPU.