这是pgvector 仅有的两种向量索引,也是 Java 项目做 RAG 必须选一个的核心技术
-
IVFFlat = Inverted File with Flat(带平面索引的倒排文件)
-
HNSW = Hierarchical Navigable Small World(分层可导航小世界)
-
IVFFlat :先聚类分桶,只查相似桶
-
HNSW :分层导航,快速跳转精准查找
| IVFFlat | HNSW | |
|---|---|---|
| 原理 | 分桶聚类 | 多层图导航 |
| 速度 | 快 | 极快 |
| 精度 | 高 | 最高 |
| 内存 | 省内存 | 占用高一点 |
| 新增数据 | 不友好,需重建 | 友好,随时插 |
| 适合数据 | 静态、不怎么变 | 动态、频繁增删改 |
| 生产推荐 | 数据固定用 | 90% 场景首选 |
IVFFlat = 先聚类分桶,再只查相似桶 → 快、省内存、适合静态数据
HNSW = 分层导航图 → 更快、精度更高、适合动态数据