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 索引优化示例