OceanBase混合检索(Hybrid Search):多模态检索实战指南
摘要: Corrective RAG(CRAG),通过文档评分和托底机制来提升 RAG 系统的可靠性,主要解决检索结果的质量验证问题。但在检索环节本身,传统 RAG 系统还存在一个根本性的问题:单一检索方式的盲区。 本章将解决这个问题:如何通过混合检索(Hybrid Search)结合多种检索方式,提升检索的召回率和精确度。 2.1 什么是混合检索? 混合检索(Hybrid Search)是一种结合向量检索、稀疏检索、全文检索三种模态,通过加权分数融合来提升检索效果的技术。它通过让不同检索方式互补,克服单一检索方式的盲区,从而提高召回率和精确度。 2.2 单一检索方式的问题 我们先来看看单靠一种检索方式会遇到什么问题。 向量检索的盲区: 向量检索擅长理解语义和概念,但它会遗漏精确的关键词。比如你搜索 “GAAP” 或 “Q3 2023” 这样的专有名词,向量检索可能会返回一些概念相似但实际不相关的结果。还有一个问题是过度泛化——它可能返回概念上相似,但实际上答非所问的文档。 关键词检索的盲区: 关键词检索擅长匹配精确的术语,但它不理解语义。比如你搜索 “machine learning”,它找不到包含 “AI” 的文档;你搜索 “revenue”,它找不到包含 “earnings” 或 “income” 的内容。这就是语义盲区的问题。 问题的本质在于:向量检索会遗漏关键词,关键词检索会遗漏语义——每种方法都有自己的盲区。 2.3 混合检索:融合三种模态 混合检索的思路是:既然单一方法都有盲区,那就把它们组合起来。具体来说,混合检索结合了三种互补的检索方式: 三种检索方式各有侧重: Vector Search (向量检索) → 理解语义相似度 2.4 Hybrid RAG vs Corrective RAG 混合检索和纠错机制解决的是不同阶段的问题: 这两种技术可以完美配合:用混合检索提升检索质量,再用 Corrective RAG 进行质量验证。 理解了混合检索的必要性后,我们来深入了解构成混合检索的三种核心模态。 3.1 向量检索(Vector Search) 向量检索通过将文本转换为稠密向量(Dense Embeddings,通常 768-1536 维),然后使用余弦相似度测量向量之间的角度,返回语义上最相似的文档。 它的优势在于理解概念和语义关系,能够处理释义和同义表达。但它无法精确匹配特定术语,比如 “GAAP” 或 “SKU-12345” 这样的专有名词。 适用场景:概念性查询,比如 “What causes inflation?” 3.2 稀疏检索(Sparse Search) 稀疏检索使用 TF-IDF(词频-逆文档频率)提取关键词,可以在词汇表内扩展同义词,基于关键词权重进行匹配(不是精确字符串匹配)。 TF-IDF 的原理是:Term Frequency × Inverse Document Frequency——在整个文档集中越罕见的词获得越高的权重。 稀疏检索的优势是能够匹配相关术语,比如 revenue、earnings、income 这些同义词,而且不需要嵌入模型。但它受词汇表维度限制,难以处理稀有专有名词。 典型应用场景:工具选择(Tool Selection) 稀疏检索在混合检索中发挥关键词匹配作用,特别在工具选择、术语敏感查询(如专有名词、技术缩写)中表现优异。 3.3 全文检索(Full-text Search) 全文检索通过构建带分词的倒排索引(Inverted Index),应用 BM25 评分算法(改进的 TF-IDF,加入了文档长度归一化),返回精确短语匹配的结果。 BM25 是 TF-IDF 的改进版本,它加入了文档长度归一化,避免长文档获得不公平的高分。 全文检索的优势是能够精确匹配短语(如 “Item 1A Risk Factors”),处理稀有专有名词,支持精确章节定位。但它无法处理拼写错误或变体,也不理解语义关系。 适用场景:精确章节查找,比如 “查找第 10-K 报告的风险因素章节” 3.4 三种模态的选择 没有单一模态是最好的,关键是根据查询模式组合使用: 4.1 seekdb 是什么? seekdb 是 OceanBase 推出的 AI 原生搜索数据库,它将向量存储、关系数据、全文搜索整合到一个统一的平台中。传统方案需要使用专门的向量数据库,会带来额外的运维成本和系统复杂度,seekdb 通过统一的多模型引擎解决了这个问题。 4.2 seekdb 的核心优势 4.3 为什么选择 seekdb 实现混合检索? 单次查询就能调用 3 种模态,无需调用外部服务 5.1 准备环境: 加载 embedding 模型 配置 OceanBase 连接 5.2 加载文档 首先加载源文档演示混合搜索。 5.3 初始化混合存储 启用三种搜索模式: 1密集向量:通过嵌入实现语义相似性 2稀疏向量:通过 TF-IDF 加权计算关键词重要性 3全文检索:精确短语和关键词匹配 5.4 生成稀疏向量 稀疏向量使用 TF-IDF(词频-逆文档频率)来表示关键词的重要性。 词频(TF):一个词在文档中出现的频率逆文档频率(IDF):一个词在语料库中出现的稀有度或重要性 基于词汇:直接将词映射到索引(无哈希冲突) 我们将构建一个自定义的 TF-IDF 编码器,使其能够在 OceanBase 的 50 万维度限制内工作。 5.5 准备全文内容 全文搜索需要独立的索引内容。我们将通过元数据增强页面内容 5.6 添加包含三种模态的文档 将文档存储到向量数据库,并建立三种索引。 5.7 测试各个模态 分别测试三种检索方式,对比搜索结果。 每种模态返回不同的结果——向量检索找到语义相关的内容,稀疏检索找到关键词匹配,全文检索找到精确短语。 5.7.1 向量搜索 5.7.2 稀疏向量搜索(关键词匹配) 5.7.3 全文检索(精确匹配) 在前面的步骤中,我们已经启用了三种检索模态并分别测试了它们的效果。现在的问题是:如何将这三种检索方式有效地组合起来? 这就是高级混合检索要解决的核心问题:通过加权分数融合,自动组合多种检索模态,获得比单一模态更好的检索效果。 6.1 内置分数融合机制 OceanBase 提供了 advanced_hybrid_search() 方法,可以自动组合三种模态的检索结果。 工作原理: 并行执行三种检索 - 同时运行向量检索、稀疏检索、全文检索 6.1.1 搜索模式预设 不同类型的查询需要不同的权重配置。我们可以定义几种常用的搜索模式: Balanced(平衡模式) 适合通用查询,比如 “Nike business in 2023”。权重配置:Vector 40%、Sparse 30%、Fulltext 30%。 Semantic(语义模式) 适合概念理解,比如 “What is Nike‘s strategy?”。权重配置:Vector 70%、Sparse 20%、Fulltext 10%。 Keyword(关键词模式) 适合特定术语、数字查询,比如 “Nike earnings2023”。权重配置:Vector 20%、Sparse 60%、Fulltext 20%。 Exact(精确模式) 适合法律文本、章节查找,比如 “Item 1A Risk Factors”。权重配置:Vector 10%、Sparse 20%、Fulltext 70%。 6.2 权重调优建议 从平衡模式开始 - 在不确定时使用 40/30/30 作为基准 6.3 融合算法选择 除了线性加权组合,seekdb 还支持其他融合算法: 线性组合(Linear Combination) - 加权平均,适合大多数场景 💡 扩展知识:本节提到的 RRF 和最大值融合是常见的融合算法,seekdb 支持多种融合策略。具体 API 请参考官方文档。 7.1 为什么结合 Agentic + Hybrid Search? 将智能决策和多模态检索结合,可以获得两者的最佳效果。 仅混合检索的特点:多模态(V+S+F)、更好的召回,但权重固定、总是执行检索。 Agentic + 混合检索的特点:动态搜索模式、多步推理、在不需要时跳过检索、多次搜索结果综合。 核心价值在于:Agentic RAG + Hybrid Search = 智能决策 + 多模态检索。 7.2 定义带动态搜索模式的工具 创建一个让 Agent 选择最佳搜索策略的工具。 可用的搜索模式: balanced(通用场景 40/30/30) 7.3 使用 LangChain 创建 Agent 构建一个能够动态使用混合检索的智能 Agent。 Agent 能力:在搜索前分析查询类型、选择最优搜索模式、对复杂问题进行多步搜索、将结果综合为连贯的答案。系统提示词指导 Agent 何时使用每种搜索模式。 进阶提示:让 Agent 输出自定义权重(如 0.5/0.3/0.2),而不是预设名称,以获得更精细的控制。 7.4 Agent 实战示例 观察 Agent 如何动态选择搜索策略。 财务数据查询: 用户:“Nike revenue fiscal 2023?” → Agent 分析 → search_mode=“keyword”,理由:使用关键词模式查找特定数字。 战略问题: 用户:“What is Nike‘s innovation approach?” → Agent 分析 → search_mode=“semantic”,理由:使用语义模式理解概念。 章节查找: 用户:“Find Item 1A Risk Factors” → Agent 分析 → search_mode=“exact”,理由:使用精确模式进行精准匹配。 关键优势:Agent 根据查询分析智能选择搜索策略——无需手动调优。 8.1 三种模态 Vector(向量检索)→ 语义理解 8.2 加权融合 四种预设模式:balanced / semantic / keyword / exact 8.3 Agentic 方法 让 Agent 选择搜索策略 8.4 seekdb by OceanBase 原生混合检索支持 8.5 实践建议 从平衡模式开始:在不确定查询类型时使用 40/30/30 权重 在本章中,我们深入理解了混合检索(Hybrid Search)的多模态融合机制,学习了如何结合向量检索、稀疏检索和全文检索三种模态,并使用 seekdb 构建了完整的 Agentic Hybrid RAG 系统。让我们一起探索 Agentic RAG 和混合检索的更多可能性!
混合检索通过融合向量检索、稀疏检索和全文检索三种模态,克服单一检索方式的语义或关键词盲区,提升召回率与精确度。OceanBase推出的AI原生搜索数据库seekdb支持单次查询同时调用三种模态,并提供内置加权融合机制及预设搜索模式。配合Agentic RAG动态选择策略,提升召回与精度。
Sparse Search (稀疏检索) → 匹配关键词和同义词
Full-text Search (全文检索) → 精确短语匹配


原生加权融合,内置 RRF 和线性组合算法
自动索引同步,向量、稀疏、BM25 索引自动维护
MySQL 协议,兼容现有工具和驱动
可以无缝迁移到 OceanBase 集群










分数归一化 - 将每种模态的分数标准化到 0-1 范围
加权融合 - 应用权重公式:final_score = w₁×vector + w₂×sparse + w₃×fulltext
排序返回 - 按融合后的分数排序,返回 Top-K 结果
所有的分数归一化和融合逻辑都在 seekdb 内部自动完成,开发者只需要关注权重配置即可。搜索模式预设
根据业务场景调整 - 分析实际查询日志,找出主要查询类型
A/B 测试验证 - 对比不同权重配置的检索效果
允许动态调整 - 不同查询可以使用不同的权重配置
RRF(Reciprocal Rank Fusion) - 基于排名融合,对分数尺度不敏感
最大值融合 - 取各模态的最高分,适合“或”逻辑
推荐做法:先使用线性组合,如果效果不理想再尝试 RRF。
semantic(概念和语义 70/20/10)
keyword(关键词查询 20/60/20)
exact(精确短语 10/20/70)
Agent 会分析查询并自动选择最佳模式。
Sparse(稀疏检索)→ 关键词 + 同义词扩展
Fulltext(全文检索)→ 精确短语
支持自定义权重组合模态
根据你的领域调优权重
每个查询的动态模式选择
复杂问答的多步搜索
单次查询 → 3 种模态
轻松迁移到 OceanBase 集群
让 Agent 做决策:通过系统提示词指导 Agent 选择搜索模式
迭代调优:根据实际查询日志调整权重预设
组合使用技术:混合检索 + Corrective RAG = 更强大的系统