发布于 2026-09-10T10:59:47.125212Z · Christopher Winslett · Crunchy Data 博客

向量检索一旦带上标量过滤,HNSW 常常先取一批再被 WHERE 过滤掉,召回不足。Christopher Winslett 整理了四种写法:开 hnsw.iterative_scan 让图继续扫到够数;对稳定且基数低的条件建带 WHERE 的部分 HNSW 索引;先超量取候选再过滤重排,池子按 k 除以选择率再乘二估;以及按查询向量哈希缓存结果。低选择率下迭代扫描代价明显,写完要用 EXPLAIN ANALYZE 核对。
向量检索一旦带上标量过滤,HNSW 常常先取一批再被 WHERE 过滤掉,召回不足。Christopher Winslett 整理了四种写法:开 hnsw.iterative_scan 让图继续扫到够数;对稳定且基数低的条件建带 WHERE 的部分 HNSW 索引;先超量取候选再过滤重排,池子按 k 除以选择率再乘二估;以及按查询向量哈希缓存结果。低选择率下迭代扫描代价明显,写完要用 EXPLAIN ANALYZE 核对。
来源记录
- center.info_item · bf4b2c40f496f569 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · bf4b2c40f496f569 · 2026-10-03T04:08:55.967155Z