← AI 术语表

AI 术语表 · 进阶 · 语言模型 · 效率与基础设施

ANN 搜索

ANN 搜索(近似最近邻搜索,Approximate Nearest Neighbor)是一种在海量数据中查找与查询最相似项目的方法,它不追求“完全准确”,而是以“几乎准确”换取极快的速度。它是向量数据库和 RAG 检索的核心技术。

关于这个术语
难度
进阶 · 需要了解内部原理的专业术语
加入时间
2026-10-08
通俗解释 这就像在大型图书馆里找一本书时,不是逐本翻看所有书,而是按分类号直接走到相应书架,只查看附近的书。有时可能会错过放在别的书架上、更合适的书,这一点也很相似。

工作原理

首先,用嵌入模型把文档或图像转换成一串数字(向量),并预先建立索引,以便快速查找这些向量。典型的索引方式包括把向量按相似程度分组的 IVF,以及把相近向量连成多层网络的 HNSW 等。查询到来时,用同样的方式把查询也转换成向量,再沿着索引只挑选可能性高的候选进行比较。由于不比较全部数据,所以速度很快,但结果可能与真正最近的项目略有不同。

ANN 搜索的两个阶段文档·图像 → 嵌入模型; 嵌入模型 → ANN 索引(预先存储); 查询 → 嵌入模型; 嵌入模型 → 沿索引搜索; ANN 索引 → 沿索引搜索(参照); 沿索引搜索 → 最近的 k 个① 预先完成 · 索引② 搜索时文档·图像嵌入模型转换为向量ANN 索引HNSW·IVF 等查询嵌入模型查询也转为向量沿索引搜索只比较候选最近的 k 个几乎准确的结果预先存储参照
ANN 搜索的两个阶段 上面一行是预先完成的索引构建,下面一行是查询到来时的搜索。搜索时沿着索引只比较候选,返回大致最近的 k 个结果。

为什么重要

精确的最近邻查找(KNN)在数据增长到数百万至数十亿条时,哪怕只有一个查询也要计算与所有数据的距离,速度太慢。ANN 搜索牺牲少许准确率,大幅缩短搜索时间,使大规模服务能够实现实时搜索。RAG 中检索与查询相关文档片段的步骤、语义搜索、相似图片·商品推荐等,都依赖这项技术。向量数据库主打的核心功能,归根结底也是快速的 ANN 搜索。

注意事项

ANN 搜索需要在速度和准确率之间权衡。设置为查看更多候选时,准确率会提高但速度变慢;反之则速度更快,但漏掉的结果会增多。能在多大程度上找出真正相近的项目,通常用召回率(recall)来评估。此外,建立和维护索引需要耗费内存和时间,因此要选择适合数据规模和更新频率的方式。所以,为了进一步提高检索质量,有时还会在后面接一个重排序器。

示例

假设要用 RAG 搭建一个公司内部文档聊天机器人。先把内部文档分块并嵌入后存入向量数据库,向量数据库会预先建立 HNSW 等 ANN 索引。员工提问时,先对问题进行嵌入,再通过 ANN 搜索瞬间找出几个最相似的文档片段,一并交给 LLM,LLM 便以这些内容为基础撰写回答。

相关术语