注疏 · 检索

HNSW

别名 hnsw / 向量索引

一种近似最近邻索引,用分层图把向量检索从"逐个比"加速到"跳着找"。数据量大时快得多,小数据量下则是过度设计。

简述

HNSW 是一种给向量建索引的算法,全称”分层可导航小世界图”。它把向量组织成多层图,查最近邻时从顶层粗略跳、逐层精细化,不用逐个比对。数据量大时,比暴力扫描快一两个数量级。

详解

它是近似最近邻——为了快,牺牲一点点精度,可能漏掉极少数真正最近的。代价换来速度:百万级向量下,暴力扫描要几秒一次查询,HNSW 是毫秒级。pgvector 支持建 HNSW 索引,一条 SQL 的事。

深化

mindplace 至今没建 HNSW,这是刻意的。有论文实测过:十万文档以下,暴力扫描和 HNSW 的检索性能差异可以忽略;百万以下都看不出上 HNSW 的明显好处。这个站的 向量检索 集合不到一万条,比那个阈值低两个数量级,建索引纯属过度设计,还白搭上近似带来的精度损失。把它收进术语表,是为了记住一个边界:技术不是越先进越好,用在错的规模上就是负担。