Una base de datos vectorial de código abierto que se integra en las aplicaciones para realizar búsquedas de similitud con baja latencia, sin ejecutar un servidor.
unum-cloud/USearch
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.
Alternativa open source a:Pinecone
- Estrellas
- 4,346
- Forks
- 360
- Issues abiertos
- 110
- Último commit
- hace 3 días
¿Qué es?
USearch es un motor de búsqueda por similitud y clustering basado en el algoritmo de grafos HNSW. Indexa vectores y admite métricas de distancia definidas por el usuario, por lo que puede utilizarse para búsquedas semánticas, consultas de huellas moleculares o consultas geoespaciales con la distancia de Haversine. El núcleo consta de un único header de C++11, y ofrece bindings para C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C y Wolfram.
El índice puede almacenar vectores con precisión reducida, como bf16, f16, e5m2 e i8, además de un tipo binario para las métricas Tanimoto y Hamming. Los índices se pueden guardar en un archivo, un stream o un buffer mapeado en memoria, y se pueden servir desde disco sin cargarlo todo en la RAM. La búsqueda puede aplicar funciones de predicado durante el recorrido del grafo, y también hay un modo de fuerza bruta exacta para colecciones pequeñas.
El proyecto también incluye clustering de K vecinos más cercanos sobre un índice existente y una operación join para coincidencias difusas uno a uno o de muchos a muchos. Varias bases de datos y herramientas, entre ellas ClickHouse y DuckDB, lo incluyen como backend de índices vectoriales.
Funciones clave
- 01Biblioteca en un único header de C++11 y con una base de código pequeña
- 02Búsqueda aproximada de vecinos más cercanos basada en HNSW
- 03Métricas de distancia definidas por el usuario, incluidas métricas de Python compiladas con JIT
- 04Almacenamiento con precisión reducida, como bf16, f16, e5m2 e i8
- 05Servicio de índices desde disco o archivos mapeados en memoria
- 06Filtrado mediante predicados durante el recorrido del grafo
Casos de uso
- Añadir búsqueda semántica sobre embeddings a una aplicación o servicio
- Integrar un índice vectorial en una aplicación móvil o del lado del cliente, en distintas plataformas
- Ejecutar búsquedas por similitud sobre huellas moleculares o coordenadas geoespaciales
- Servir índices muy grandes desde disco para reducir el consumo de RAM
Temas
Preguntas frecuentes
- ¿Qué es USearch?
- 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. USearch es un motor de búsqueda por similitud y clustering basado en el algoritmo de grafos HNSW. Indexa vectores y admite métricas de distancia definidas por el usuario, por lo que puede utilizarse para búsquedas semánticas, consultas de huellas moleculares o consultas geoespaciales con la distancia de Haversine. El núcleo consta de un único header de C++11, y ofrece bindings para C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C y Wolfram.
- ¿USearch es gratuito? ¿Qué licencia tiene?
- USearch es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿USearch sigue mantenido?
- Mantenimiento activo. El último commit de USearch fue el 18 oct 2026.
- ¿Para qué puedo usar USearch?
- Añadir búsqueda semántica sobre embeddings a una aplicación o servicio Integrar un índice vectorial en una aplicación móvil o del lado del cliente, en distintas plataformas Ejecutar búsquedas por similitud sobre huellas moleculares o coordenadas geoespaciales Servir índices muy grandes desde disco para reducir el consumo de RAM
- ¿Dónde consigo USearch?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/unum-cloud/USearch
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
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.
Extensión de código abierto para buscar vectores similares en Postgres y almacenar y consultar embeddings junto con los datos relacionales.
Base de datos vectorial de código abierto que almacena objetos y vectores juntos y combina la búsqueda por similitud con filtros estructurados.
Biblioteca de recuperación y base de datos embebida para IA multimodal, con búsqueda vectorial, de texto completo y SQL sobre datos en formato Lance.
Biblioteca de C++ con bindings para Python para buscar similitudes y agrupar vectores densos de forma eficiente, con aceleración opcional mediante GPU.