向量数据库的索引类型选择策略(Flat/IVF/HNSW/ANNOY)
请全面对比向量数据库/FAISS支持的索引类型:Flat(暴力)、IVF(倒排)、HNSW(分层图)、ANNOY(随机投影树)。如何根据数据规模选择最合适的索引?
回答
屠龙少年
| 索引 | 原理 | 速度 | 召回率 | 批量插入 |
|---|---|---|---|---|
| Flat | 全量比较 | O(n) | 100% | ✅ |
| IVF | 聚类+桶 | O(sqrt(n)) | 90-97% | ✅ |
| HNSW | 分层图 | O(log n) | 99%+ | ❌ |
| ANNOY | 随机树 | O(log n) | 85-95% | ❌ |
选择策略:<10K Flat, 10K-1M IVF, 1M-10M HNSW或IVF, >10M IVF+PQ, >100M IVF+PQ+分片。