nprobe

nprobe 决定 Milvus 在向量搜索时要检查多少个“聚类桶”,影响速度与准确性的平衡。

nprobe 是什么?

Milvus 在创建 IVF 系列索引时,会把向量分成多个聚类(通常称为 桶 / Centroid)。当执行查询时,nprobe 控制需要探查多少个桶:

图书馆类比

想象图书馆按主题把书放在不同书架上:

nprobe 越大,覆盖范围越广

查询向量 蓝圈代表已探查的聚类,绿色点为候选向量
2
被探查的聚类 候选向量

nprobe 的取值建议

小数据集 / 离线任务

可以适当增大(如 10~30),保证精度。

大数据集 / 在线推理

从较小值(如 1~5)起步,根据 SLA 逐步调高。

实时系统

以响应时间为优先,nprobe 通常保持较小。

📌 小技巧:可以先用较低 nprobe 获得初始结果,再根据需要对结果进行精加工或二次过滤。

核心对照表

nprobe 大小 速度 准确性 典型场景
小(1-3) 非常快 可能漏掉结果 实时推荐、移动端检索
中(4-10) 平衡 覆盖率较好 常见在线查询
大(10 以上) 偏慢 接近全局搜索 离线分析、精度优先