Skip to content

一句话总结:生产 RAG 不要只用纯向量检索——纯向量 Recall@10 约 62-78%,混合检索 + 重排可达 89-91%;HNSW 是默认索引,选库看规模。

选型(按规模与场景)

方案定位适用规模典型场景
Chroma极轻量(pip 即用)原型/小数据本地 Demo、LangChain 快速集成
pgvectorPostgreSQL 插件百万级已有 PG 栈、业务数据和向量同库
QdrantRust 高性能专用库千万级中规模生产、混合检索最好
Milvus云原生分布式亿级+大规模高可用(需运维团队,etcd/MinIO)
FAISS内存索引库单机嵌入式、高吞吐单机检索

演进路线:Chroma 做 Demo → Qdrant/pgvector 进生产 → Milvus 上规模。

索引算法(ANN)

索引原理特性适用
FLAT暴力全扫精确、慢小数据
IVF倒排聚类(nprobe 探测簇数)快、可调大库、内存有限
HNSW多层小世界图(M/efConstruction/efSearch)默认索引、log 复杂度、增量插入大多数生产
IVF-PQ / DiskANN量化压缩 / SSD 索引显存小十亿级

选型口诀:延迟敏感 → HNSW(调 ef);内存受限 → IVF+PQ 或 DiskANN;10 亿+ → DiskANN/PQ。 调参:Agent 漏检相关文档推理就会错,recall 目标 95%+;HNSW 调 M、efConstruction、efSearch。

混合检索(生产标配)

  • BM25 强在:精确匹配——零件编号、法规条文、专有名词、版本号(纯向量对这些结构性失败)
  • 向量强在:语义匹配——同义词泛化("汽车" vs "小轿车")、概念相似
  • 两路并行 → 融合 →(可选)重排
  • 融合用 RRF(Reciprocal Rank Fusion):RRF(d)=Σ 1/(k+rank),k 常取 60;无需调参、对分数尺度鲁棒——别用 MinMax 归一化
  • 重排用交叉编码器(BGE-Reranker):两阶段 Recall@5 达 0.816
  • 实测:RRF + BGE-Reranker 让 Recall@10 0.67 → 0.82(+22%)

检索评测指标

  • Recall@k:正确答案是否在 top-k
  • MRR:首个正确答案排名倒数均值
  • 生产注意:Agent 检索漏检直接导致推理错误

面试要点

  • 选型表:Chroma 原型 / pgvector 百万级 / Qdrant 千万级 / Milvus 亿级
  • HNSW 是默认索引,调 M/ef/efConstruction;内存受限走 IVF-PQ/DiskANN
  • 生产标配混合检索:BM25 + 向量互补,RRF 融合(k=60),交叉编码器重排
  • 纯向量结构性短板:专有名词/编号/法规条文召回失败
  • 评测指标 Recall@k / MRR;Agent 场景 recall 目标 95%+