嵌入模型(如 BGE、OpenAI text-embedding)把文本映射到高维稠密向量(768-3072 维),语义相近的文本向量距离近。检索即计算查询向量与库中向量的相似度——归一化后余弦相似度等价于内积,取 top-k。

暴力扫描复杂度 O(N·d),百万级文档每次查询要算百万次内积,延迟无法接受,因此用近似最近邻(ANN)索引以微小召回损失换取数量级加速。主流算法:HNSW(分层小世界图,从稀疏层向稠密层逐层贪心游走,召回高、查询快,是在线检索主流);IVF(倒排聚类,先粗聚类再只搜最近的若干簇,内存友好);PQ(乘积量化压缩向量,省内存)。Faiss、Milvus、pgvector 都提供这些实现。

易错点:嵌入模型的选择比索引调参影响更大,且必须与文档语言、领域匹配,中英文混合库要用多语言模型;更换嵌入模型需要全量重建索引。追问方向:召回率与延迟如何权衡(HNSW 的 ef 参数)?为什么嵌入检索对'相似但无关'的长文本区分力弱?