蒙飘 发表于 2026-1-9 19:50:15

混合检索(Hybrid Search):多模态检索实战指南(第四章)

<h2 id="1-从-corrective-rag-到多模态检索">1. 从 Corrective RAG 到多模态检索</h2>
<p>在第三章,我们学习了 Corrective RAG(CRAG),通过文档评分和托底机制来提升 RAG 系统的可靠性。CRAG 主要解决检索结果的质量验证问题,但在检索环节本身,传统 RAG 系统还存在一个根本性的问题:单一检索方式的盲区。</p>
<p>本章将解决这个问题:如何通过混合检索(Hybrid Search)结合多种检索方式,提升检索的召回率和精确度。</p>
<h2 id="2-为什么需要混合检索">2. 为什么需要混合检索?</h2>
<h3 id="21-什么是混合检索">2.1 什么是混合检索?</h3>
<p>混合检索(Hybrid Search)是一种结合向量检索、稀疏检索、全文检索三种模态,通过加权分数融合来提升检索效果的技术。它通过让不同检索方式互补,克服单一检索方式的盲区,从而提高召回率和精确度。</p>
<h3 id="22-单一检索方式的问题">2.2 单一检索方式的问题</h3>
<p>我们先来看看单靠一种检索方式会遇到什么问题。</p>
<p><strong>向量检索的盲区:</strong></p>
<p>向量检索擅长理解语义和概念,但它会遗漏精确的关键词。比如你搜索 “GAAP” 或 “Q3 2023” 这样的专有名词,向量检索可能会返回一些概念相似但实际不相关的结果。还有一个问题是过度泛化——它可能返回概念上相似,但实际上答非所问的文档。</p>
<p><strong>关键词检索的盲区:</strong></p>
<p>关键词检索擅长匹配精确的术语,但它不理解语义。比如你搜索 “machine learning”,它找不到包含 “AI” 的文档;你搜索 “revenue”,它找不到包含 “earnings” 或 “income” 的内容。这就是语义盲区的问题。</p>
<p>问题的本质在于:向量检索会遗漏关键词,关键词检索会遗漏语义——每种方法都有自己的盲区。</p>
<h3 id="23-混合检索融合三种模态">2.3 混合检索:融合三种模态</h3>
<p>混合检索的思路是:既然单一方法都有盲区,那就把它们组合起来。具体来说,混合检索结合了三种互补的检索方式:</p>
<p></p>
<p>三种检索方式各有侧重:</p>
<ul>
<li><strong>Vector Search(向量检索)</strong> → 理解语义相似度</li>
<li><strong>Sparse Search (稀疏检索)</strong> → 匹配关键词和同义词</li>
<li><strong>Full-text Search (全文检索)</strong> → 精确短语匹配</li>
</ul>
<h3 id="24-hybrid-rag-vs-corrective-rag">2.4 Hybrid RAG vs Corrective RAG</h3>
<p>混合检索和纠错机制解决的是不同阶段的问题:</p>
<table>
<thead>
<tr>
<th><strong>对比维度</strong></th>
<th><strong>Hybrid RAG (本章)</strong></th>
<th><strong>Corrective RAG (第三章)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>核心目标</td>
<td>Better Retrieval (更好的检索)</td>
<td>Better Validation (更好的验证)</td>
</tr>
<tr>
<td>实现方式</td>
<td>结合 3 种检索模态</td>
<td>文档相关性评分</td>
</tr>
<tr>
<td>关键机制</td>
<td>加权分数融合</td>
<td>查询重写 + 托底机制</td>
</tr>
<tr>
<td>作用阶段</td>
<td>检索阶段</td>
<td>检索后验证阶段</td>
</tr>
<tr>
<td>Agent 作用</td>
<td>选择检索策略</td>
<td>评估质量 + 触发托底</td>
</tr>
</tbody>
</table>
<p>这两种技术可以完美配合:用混合检索提升检索质量,再用 Corrective RAG 进行质量验证。</p>
<h2 id="3-三种检索模态详解">3. 三种检索模态详解</h2>
<p>理解了混合检索的必要性后,我们来深入了解构成混合检索的三种核心模态。</p>
<h3 id="31-向量检索vector-search">3.1 向量检索(Vector Search)</h3>
<p>向量检索通过将文本转换为稠密向量(Dense Embeddings,通常 768-1536 维),然后使用余弦相似度测量向量之间的角度,返回语义上最相似的文档。</p>
<p>它的优势在于理解概念和语义关系,能够处理释义和同义表达。但它无法精确匹配特定术语,比如 “GAAP” 或 “SKU-12345” 这样的专有名词。</p>
<p><strong>适用场景</strong>:概念性查询,比如 “What causes inflation?”</p>
<h3 id="32-稀疏检索sparse-search">3.2 稀疏检索(Sparse Search)</h3>
<p>稀疏检索使用 TF-IDF(词频-逆文档频率)提取关键词,可以在词汇表内扩展同义词,基于关键词权重进行匹配(不是精确字符串匹配)。</p>
<p>TF-IDF 的原理是:Term Frequency × Inverse Document Frequency——在整个文档集中越罕见的词获得越高的权重。</p>
<p>稀疏检索的优势是能够匹配相关术语,比如 revenue、earnings、income 这些同义词,而且不需要嵌入模型。但它受词汇表维度限制,难以处理稀有专有名词。</p>
<p><strong>典型应用场景:工具选择(Tool Selection)</strong></p>
<p>稀疏检索在混合检索中发挥关键词匹配作用,特别在工具选择、术语敏感查询(如专有名词、技术缩写)中表现优异。</p>
<h3 id="33-全文检索full-text-search">3.3 全文检索(Full-text Search)</h3>
<p>全文检索通过构建带分词的倒排索引(Inverted Index),应用 BM25 评分算法(改进的 TF-IDF,加入了文档长度归一化),返回精确短语匹配的结果。</p>
<p>BM25 是 TF-IDF 的改进版本,它加入了文档长度归一化,避免长文档获得不公平的高分。</p>
<p>全文检索的优势是能够精确匹配短语(如 “Item 1A Risk Factors”),处理稀有专有名词,支持精确章节定位。但它无法处理拼写错误或变体,也不理解语义关系。</p>
<p><strong>适用场景</strong>:精确章节查找,比如 “查找第 10-K 报告的风险因素章节”</p>
<h3 id="34-三种模态的选择">3.4 三种模态的选择</h3>
<p>没有单一模态是最好的,关键是根据查询模式组合使用:</p>
<table>
<thead>
<tr>
<th><strong>检索模态</strong></th>
<th><strong>最适合的查询类型</strong></th>
<th><strong>示例查询</strong></th>
<th><strong>核心优势</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>向量检索</td>
<td>概念性查询,需要语义理解</td>
<td>“What are Nike’s financial risks?”</td>
<td>语义理解</td>
</tr>
<tr>
<td>稀疏检索</td>
<td>同义词感知的关键词匹配</td>
<td>“Nike earnings 2023”</td>
<td>关键词泛化</td>
</tr>
<tr>
<td>全文检索</td>
<td>精确短语查询,章节名称</td>
<td>“Item 1A Risk Factors”</td>
<td>精确匹配</td>
</tr>
</tbody>
</table>

<h2 id="4-seekdbai-原生的搜索数据库">4. seekdb:AI 原生的搜索数据库</h2>
<h3 id="41-seekdb-是什么">4.1 seekdb 是什么?</h3>
<p>seekdb 是 OceanBase 推出的 AI 原生搜索数据库,它将向量存储、关系数据、全文搜索整合到一个统一的平台中。传统方案需要使用专门的向量数据库,会带来额外的运维成本和系统复杂度,seekdb 通过统一的多模型引擎解决了这个问题。</p>
<h3 id="42-seekdb-的核心优势">4.2 seekdb 的核心优势</h3>
<p></p>
<h3 id="43-为什么选择-seekdb-实现混合检索">4.3 为什么选择 seekdb 实现混合检索?</h3>
<ul>
<li>单次查询就能调用 3 种模态,无需调用外部服务</li>
<li>原生加权融合,内置 RRF 和线性组合算法</li>
<li>自动索引同步,向量、稀疏、BM25 索引自动维护</li>
<li>MySQL 协议,兼容现有工具和驱动</li>
<li>可以无缝迁移到 OceanBase 集群</li>
</ul>
<h2 id="5-实战实现混合检索">5. 实战:实现混合检索</h2>
<h4 id="51-准备环境">5.1 准备环境:</h4>
<code >import os
from dotenv import load_dotenv


# Load environment variables
load_dotenv("../.env")


# Verify configuration
print("✅ Configuration loaded:")
print(f"<br>来源:程序园用户自行投稿发布,如果侵权,请联系站长删除<br>免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

祝娜娜 发表于 2026-1-18 21:12:35

这个好,看起来很实用

敛饺乖 发表于 2026-1-19 08:06:25

分享、互助 让互联网精神温暖你我

仁夹篇 发表于 2026-1-21 07:21:40

懂技术并乐意极积无私分享的人越来越少。珍惜

呶募妙 发表于 2026-1-22 22:22:17

感谢分享,学习下。

边书仪 发表于 2026-1-24 08:43:10

分享、互助 让互联网精神温暖你我

尹心菱 发表于 2026-1-25 08:59:26

懂技术并乐意极积无私分享的人越来越少。珍惜

迁岂罚 发表于 2026-1-27 04:55:00

谢谢分享,试用一下

襁壮鸢 发表于 2026-1-28 00:17:38

懂技术并乐意极积无私分享的人越来越少。珍惜

煞赶峙 发表于 2026-1-29 06:24:34

这个有用。

福清婉 发表于 2026-1-29 07:47:18

谢谢楼主提供!

蝙俚 发表于 2026-2-3 07:22:25

热心回复!

亢安芙 发表于 2026-2-5 08:56:13

yyds。多谢分享

战匈琼 发表于 2026-2-6 05:24:59

喜欢鼓捣这些软件,现在用得少,谢谢分享!

告陕无 发表于 2026-2-8 01:19:08

感谢发布原创作品,程序园因你更精彩

寿爹座 发表于 2026-2-9 01:03:00

谢谢分享,试用一下

况雪柳 发表于 2026-2-9 03:47:08

谢谢分享,试用一下

仰翡邸 发表于 2026-2-10 04:08:39

懂技术并乐意极积无私分享的人越来越少。珍惜

昆拗干 发表于 2026-2-10 13:13:50

这个好,看起来很实用

咳镘袁 发表于 2026-2-10 17:32:59

用心讨论,共获提升!
页: [1] 2
查看完整版本: 混合检索(Hybrid Search):多模态检索实战指南(第四章)