1. 基于向量的语义检索(最主流)
这是当前 RAG 中最常用的检索方式,核心是将文本转化为向量(Embedding),通过计算向量相似度匹配信息,能理解文本的 “语义含义” 而非仅匹配关键词。
- 核心逻辑:用大模型将查询语句和知识库文档都转化为高维向量,通过余弦相似度、欧氏距离等算法,找出与查询向量最相似的文档向量。
- 适用场景:处理非结构化数据(如文档、对话记录、论文),或查询意图较模糊、需要 “理解” 的场景,比如 “解释区块链的核心原理”“总结某篇文章的观点”。
- 关键组件:依赖向量数据库(如 Milvus、Chroma)和 Embedding 模型(如 BERT、Sentence-BERT)。
2. 基于关键词的精确 / 模糊检索(传统基础)
这种方式更贴近传统搜索引擎逻辑,通过关键词匹配知识库中的内容,不涉及语义理解,重点在 “字符层面的匹配”。
- 核心逻辑:
- 精确匹配:查询关键词需与知识库中的词汇完全一致(如 “检索产品 ID 为 A123 的规格”);
- 模糊匹配:允许关键词存在部分差异(如错别字、同义词、前缀后缀,通过正则表达式、同义词库实现)。
- 适用场景:处理结构化数据(如数据库表、表单)或查询目标明确的场景,比如 “查询 2024 年 3 月的销售额”“查找用户名为‘张三’的订单”。
- 关键组件:依赖关系型数据库(如 MySQL)的索引、全文搜索引擎(如 Elasticsearch)。
3. 混合检索(融合前两者优势)
为了兼顾 “语义理解的广度” 和 “关键词匹配的精度”,混合检索会结合向量检索和关键词检索的结果,进一步优化召回效果。
- 核心逻辑:先通过向量检索获取语义相关的候选文档,再用关键词检索对候选结果二次筛选(或反之),最后综合排序返回结果。
- 适用场景:对检索精度和召回率要求都高的场景,比如企业知识库问答(既需要理解 “如何解决报销异常” 的语义,又需要匹配 “报销流程”“异常代码” 等关键词)、客服对话系统。
- 常见策略:结果加权融合(给两种检索结果分配不同权重)、级联检索(先用一种方式缩小范围,再用另一种方式精准筛选)。