在 Milvus 中,索引用于加速向量数据的检索。不同的索引类型适合不同的数据规模、检索精度和硬件环境。
| 类别 | 索引类型 | 缩写全称 | 简介 | 适用场景 |
|---|---|---|---|---|
| 自动索引 | AUTOINDEX | Auto Index(自动索引) | 由系统自动选择最优索引类型,无需手动配置 | 新手推荐,通用场景 |
| 内存索引 | HNSW | Hierarchical Navigable Small World(分层可导航小世界图) | 高效的图结构索引,适合高精度检索 | 大规模、高精度向量检索 |
| IVF_FLAT | Inverted File with Flat(倒排文件+暴力遍历) | 分段倒排索引,速度快,精度高 | 大数据量、需平衡速度与精度 | |
| IVF_PQ | Inverted File with Product Quantization(倒排文件+乘积量化) | 分段+压缩,节省内存,速度快 | 内存有限、数据量大 | |
| IVF_SQ8 | Inverted File with Scalar Quantization 8bit(倒排文件+8位标量量化) | 分段+8位量化,进一步压缩 | 极致节省内存 | |
| FLAT | Brute Force (Flat)(暴力遍历) | 暴力遍历,精度最高,速度慢 | 数据量小、需绝对精度 | |
| SCANN | Scalable Approximate Nearest Neighbor(可扩展近似最近邻) | 高效近似最近邻搜索 | 大规模向量、需高性能 | |
| 磁盘索引 | DISKANN | Disk-based Approximate Nearest Neighbor(基于磁盘的近似最近邻) | 基于磁盘的高效索引,适合超大数据集 | 数据量极大,内存不足 |
| GPU索引 | GPU_CAGRA | GPU-based CAGRA(GPU高性能图索引) | 基于GPU的高性能索引 | 有GPU资源,需极高检索速度 |
| GPU_IVF_FLAT | GPU Inverted File with Flat(GPU倒排文件+暴力遍历) | GPU加速的IVF_FLAT | GPU环境下大数据量 | |
| GPU_IVF_PQ | GPU Inverted File with Product Quantization(GPU倒排文件+乘积量化) | GPU加速的IVF_PQ | GPU环境下大数据量、需压缩 | |
| GPU_BRUTE_FORCE | GPU Brute Force(GPU暴力遍历) | GPU暴力遍历 | GPU环境下小数据量、需绝对精度 |