我从零构建了一个 RAG 搜索引擎,以了解现代搜索的真实工作原理
发布: (2026年2月26日 GMT+8 12:16)
3 分钟阅读
原文: Dev.to
Source: Dev.to
概览
大家都在构建 RAG 应用,但大多数教程都会跳过最关键的部分——搜索质量。
我没有直接套用框架,而是从零实现了自己的 RAG 搜索引擎,以深入了解检索系统的内部工作原理。
完整的拆解视频可在这里观看:
- YouTube 视频:
- 源代码:
实现的检索技术
传统关键词搜索
- 词频 (TF)
- 逆文档频率 (IDF)
- BM25 评分
这些技术说明了传统关键词搜索在生产系统中仍然极其强大的原因。
稠密语义检索
- 基于嵌入的表示
- 余弦相似度用于基于意义的匹配
能够处理:
- 同义词
- 上下文变化
- 概念相似性
混合排序
通过以下方式结合关键词和语义信号:
- 加权融合
- 互惠排名融合 (RRF)
这与现代生产搜索系统相吻合,能够在精确度和语义理解之间取得平衡。
重排序阶段
在检索到顶部结果后,重排序模型对查询‑文档对进行更深入的评估,显著提升相关性和精确度。
评估指标
- 精确率
- 召回率
- F1 分数
- 手动评估
- 以 LLM 为评判者的评估
这些指标提供了检索性能的全方位视图。
多模态检索
尝试了文本 + 图像检索,使用基于嵌入的相似度,将引擎的能力扩展到纯文本搜索之外。
与 LLM 的集成 (RAG)
将混合检索系统连接到大型语言模型,以生成有依据的响应。
关键要点: 更好的检索 > 更大的模型。
经验教训
- 检索质量是 RAG 流程中最困难、最关键的环节。
- 混合系统始终优于纯关键词或纯语义方法。
- 重排序显著提升精确度。
- 适当的评估(包括量化指标和定性判断)是获得可信结果的前提。
- 设计搜索系统需要在延迟、索引大小和相关性之间做权衡。
感兴趣的话题
如果你对以下任意主题感兴趣,欢迎交流:
- 搜索引擎
- 信息检索
- RAG 系统
- AI 系统设计
- 混合搜索架构
期待听到你的想法——你会改进或探索哪些方向? 👇