FLAT
FLAT 索引是最简单、最直接的浮点向量索引和搜索方法之一。它依赖于一种 "蛮力 "方法,即直接将每个查询向量与数据集中的每个向量进行比较,而无需任何高级预处理或数据结构。这种方法保证了准确性,由于对每个潜在匹配都进行了评估,因此可提供 100% 的召回率。
IVF_FLAT
IVF_FLAT 索引是一种可以提高浮点向量搜索性能的索引算法。
IVF_SQ8
IVF_SQ8 索引是一种基于量化的索引算法,旨在解决大规模相似性搜索难题。与穷举搜索方法相比,这种索引类型能以更小的内存占用实现更快的搜索。
IVF_PQ
IVF_PQ 索引是一种基于量化的索引算法,用于高维空间中的近似近邻搜索。虽然 IVF_PQ 的速度不如某些基于图的方法,但它所需的内存通常要少得多,因此是大型数据集的实用选择。
IVF_RABITQ
IVF_RABITQ 索引是一种基于二进制量化的索引算法,可将 FP32 向量量化为二进制表示。它提供了一个高度可配置的压缩率,并可选择细化以提高召回率,因此适用于需要显著优化存储的应用。
HNSW
HNSW 索引是一种基于图的索引算法,可以提高搜索高维浮点向量时的性能。它具有出色的搜索精度和较低的延迟,但需要较高的内存开销来维护其分层图结构。
HNSW_SQ
HNSW_SQ 将层次导航小世界(HNSW)图与标量量化(SQ)相结合,创建了一种先进的向量索引方法,提供了可控的大小与精度权衡。与标准 HNSW 相比,这种索引类型在保持较高查询处理速度的同时,索引构建时间略有增加。
HNSW_PQ
HNSW_PQ 利用分层导航小世界(HNSW)图与乘积量化(PQ),创建了一种先进的向量索引方法,提供了可控的大小与准确性权衡。与 HNSW_SQ 相比,尽管查询处理速度较低,索引构建时间较长,但在相同压缩级别下,这种索引类型的召回率更高。
HNSW_PRQ
HNSW_PRQ 结合 HNSW 与 Product Residual Quantization(PRQ,乘积残差量化),在索引大小、搜索精度和计算开销之间提供可调节的权衡。
DISKANN
在大规模场景中,数据集可能包括数十亿甚至数万亿个向量,标准的内存索引方法(如 HNSW、IVF_FLAT)往往因内存限制而跟不上步伐。DISKANN 提供了一种基于磁盘的方法,可以在数据集大小超过可用 RAM 时保持较高的搜索精度和速度,从而应对这些挑战。
SCANN
Milvus 中的 SCANN 索引由谷歌的 ScaNN 库提供支持,旨在解决向量相似性搜索的扩展难题,在速度和准确性之间取得平衡,即使在传统上会给大多数搜索算法带来挑战的大型数据集上也是如此。
AISAQ
AISAQ 是一种基于磁盘的向量索引,它对 DISKANN 进行了扩展,可以处理十亿规模的数据集,而不会超出内存限制。与将压缩向量保存在内存中的 DISKANN 不同,AISAQ 将所有数据保存在磁盘上,提供两种模式以平衡性能和存储成本。