首页/AI/AI 应用速查/HNSW 向量索引:参数与召回权衡

HNSW 向量索引:参数与召回权衡

HNSW(分层可导航小世界图)是当前主流的近邻索引:查询快、召回高,代价是吃内存。核心参数 M、efConstruction 决定建索引质量,efSearch 决定查询时的召回与延迟取舍。

AI 应用速查AI更新于 2026-10-12
M每节点邻居数:越大召回越高、内存越大(常用 16-32)
efConstruction建索引时的探索宽度:越大图质量越好、建索引越慢
efSearch查询时探索宽度:可在线调大换召回
取舍内存换延迟与召回;不适合超大规模纯磁盘场景

pgvector 建 HNSW 索引并调查询

pgvector 建 HNSW 索引并调查询
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops)
  WITH (m = 16, ef_construction = 64);
-- 查询时提高探索宽度
SET hnsw.ef_search = 100;
SELECT id FROM docs ORDER BY embedding <=> '[0.1,0.2,...]' LIMIT 10;
先固定 M / efConstruction 建库,再单独扫 efSearch 找延迟与召回的平衡点;评测集是调参的前提。

易错点

  • efSearch 设得过低,召回率无声下降且难以察觉
  • M 盲目调大,内存成倍上涨收益很小

数据来源与参考

  • Malkov & Yashunin, HNSW 论文;pgvector 官方 README

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌