17个版本 (7个破坏性更新)
| 0.8.0 | 2024年5月18日 |
|---|---|
| 0.7.1 | 2023年12月9日 |
| 0.7.0 | 2023年11月22日 |
| 0.4.5 | 2022年9月4日 |
| 0.2.0 | 2020年5月27日 |
#90 in 科学
每月58次下载
2.5MB
16K SLoC
ngt-rs
Rust版本的NGT库,它提供了对高维向量数据空间(几到几千维)中大量数据进行高速近似近邻搜索的功能。向量数据可以是f32、u8或f16。
此crate提供了以下索引
通过quantized Cargo功能可以获得这两种量化索引。注意,它们依赖于BLAS和LAPACK,因此必须在本地上安装。此外,通过使用qg_optim Cargo功能可以提高QgIndex的性能。
NgtIndex的默认实现是一个ANNG。它可以通过optim模块进行优化[^3]或转换为ONNG。
默认情况下,ngt-rs 将动态构建,这需要使用 CMake 来构建 NGT。这意味着您需要将构建工件 libngt.so 可用于最终的二进制文件(参见CI中的示例)。然而,static 功能将静态构建和链接 NGT。请注意,OpenMP 也将静态链接。如果使用了 quantized 功能,则 BLAS 和 LAPACK 库也将静态链接。
NGT 的 共享内存 和 大规模数据集 功能分别通过 Cargo 功能 shared_mem 和 large_data 提供。
[^1]: 基于图和树的方法说明
[^2]: 基于量化图的说明
[^3]: Python 中的 NGT 索引优化示例