Repolode
unum-cloud

unum-cloud/USearch

单文件 C++ 向量近似最近邻搜索与聚类引擎,提供 Python、JavaScript、Rust 等多语言绑定。

可替代:Pinecone

Star
4,346
Fork
360
未关闭 Issue
110
最近提交
3天前

这是什么?

USearch 是一个基于 HNSW 图算法的相似度搜索与聚类引擎,可对向量建立索引,并支持用户自定义距离度量。例如,它可以用于语义搜索、分子指纹检索,或使用 Haversine 距离做地理位置查询。核心实现是一个 C++11 单头文件库,并为 C、Python、JavaScript、Java、Rust、Go、Swift、C# 等语言提供绑定。

索引支持 bf16、f16、e5m2、i8 等低精度向量类型,也支持用于 Tanimoto、Hamming 等指标的二进制类型。索引可以保存为文件、流或内存映射缓冲区,并且能够直接从磁盘提供服务而无需全部加载到内存。搜索时可以在图遍历过程中应用过滤谓词,小规模数据集还可以使用精确的暴力搜索模式。

项目还提供基于已有索引的 K 近邻聚类,以及用于一对一或多对多模糊匹配的 join 操作。ClickHouse、DuckDB 等数据库将其作为向量索引后端。

核心功能

  • 01单个 C++11 头文件库,代码量小
  • 02基于 HNSW 的近似最近邻搜索
  • 03支持用户自定义距离度量,包括 Python 中的 JIT 编译度量
  • 04支持 bf16、f16、e5m2、i8 等低精度向量存储
  • 05可从磁盘或内存映射文件直接提供索引服务
  • 06在图遍历过程中应用谓词过滤

适用场景

  • 为应用或服务添加基于嵌入向量的语义搜索
  • 在移动端或客户端应用中嵌入跨平台向量索引
  • 对分子指纹或地理坐标进行相似度检索
  • 从磁盘提供超大规模索引服务,降低内存成本

标签

常见问题

USearch 是什么?
单文件 C++ 向量近似最近邻搜索与聚类引擎,提供 Python、JavaScript、Rust 等多语言绑定。 USearch 是一个基于 HNSW 图算法的相似度搜索与聚类引擎,可对向量建立索引,并支持用户自定义距离度量。例如,它可以用于语义搜索、分子指纹检索,或使用 Haversine 距离做地理位置查询。核心实现是一个 C++11 单头文件库,并为 C、Python、JavaScript、Java、Rust、Go、Swift、C# 等语言提供绑定。
USearch 可以免费使用吗?用的什么许可证?
USearch 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
USearch 还在维护吗?
活跃维护中。USearch 最近一次提交是在 2026年10月18日。
USearch 适合用来做什么?
为应用或服务添加基于嵌入向量的语义搜索 在移动端或客户端应用中嵌入跨平台向量索引 对分子指纹或地理坐标进行相似度检索 从磁盘提供超大规模索引服务,降低内存成本
在哪里获取 USearch?
源代码和安装说明在 GitHub 上:https://github.com/unum-cloud/USearch

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目