Repolode
unum-cloud

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