直接答案:AI 搜索与信息检索不是“把文档放进向量数据库”就完成。可靠系统应先用真实查询定义任务和权限,再治理语料、建立关键词与向量等候选召回,按需要做融合和重排,最后用相关性、越权、零结果、时延、成本与回滚能力共同验收。精确型号、错误码、日期和人名通常离不开关键词检索;用户换一种说法提问时,向量检索更有帮助;两类需求并存时可用混合检索。没有一种方法在所有语料、语言和查询上都最优,公开榜单只能用于筛选候选,不能代替中文业务数据上的本地评测。

本文面向站内搜索、企业知识搜索、客服检索和生成式 AI 的检索层。它与RAG 检索增强生成指南的边界很明确:搜索负责找到并排序可访问证据,RAG 再把这些证据交给生成模型组织答案。即使不生成回答,一个可点击、可过滤、能解释来源的搜索页也有独立价值。资料复核日期为 2026 年 7 月 19 日。
第一步:把“搜索更好”改成可验证任务
项目最容易从错误问题开始:团队先选向量库、嵌入模型或大模型,然后才寻找使用场景。正确顺序是收集真实查询,标出用户要完成的决定、允许访问的语料和可接受失败方式。检索“报销制度最新版”和探索“怎样处理海外差旅”不是同一种任务;前者怕返回旧版或同名文件,后者怕遗漏同义表达和相关流程。
| 查询意图 | 用户真正要做什么 | 主要失败 | 优先信号 |
|---|---|---|---|
| 导航型 | 打开已知页面或系统 | 同名页面抢位 | 标题、URL、别名、点击历史 |
| 精确查找 | 找型号、条款、错误码、日期 | 语义相近但字符不对 | 关键词、字段、短语和过滤 |
| 解释型 | 理解概念、流程或原因 | 文档用词与用户不同 | 向量召回、同义词、主题字段 |
| 比较型 | 按多个条件挑选 | 漏掉硬约束或版本 | 结构化过滤 + 多路召回 |
| 故障排查 | 从现象定位解决步骤 | 只命中症状,没有适用环境 | 错误码、产品版本、上下文 |
| 探索型 | 发现未知选项 | 结果过窄或同质化 | 语义、多样性和分类导航 |
不要只访谈“理想用户”。应从搜索日志、客服工单、站内导航、无结果查询和改写链中抽样,并清除个人信息。每条样本至少记录原查询、时间、用户权限角色、正确或可接受结果、不可接受结果及原因。没有正确答案的探索型查询也能标注:哪些结果有帮助、哪些虽然相关但过时、哪些绝不能暴露。
| 试点边界 | 最低定义 | 验收证据 |
|---|---|---|
| 用户 | 一个角色或相近权限群体 | 角色与 ACL 映射表 |
| 语料 | 一个可治理知识域 | 来源、所有者、更新时间 |
| 任务 | 三至五类高频查询 | 真实脱敏查询集 |
| 正确性 | 每类查询的相关性门槛 | 判断准则与标注者一致性 |
| 安全 | 越权和敏感内容规则 | 负面权限测试 |
| 运行 | 时延、成本、新鲜度和回滚 | 仪表板与演练记录 |
AI 搜索、信息检索、RAG 和聊天机器人有什么区别
| 能力 | 输入 | 主要输出 | 独立验收 |
|---|---|---|---|
| 信息检索 | 查询、语料、字段和权限 | 排序后的文档或片段 | 召回、排序、越权、时延 |
| 搜索产品 | 检索结果与用户上下文 | 页面、筛选、摘要、导航 | 任务成功、零结果、可解释性 |
| RAG | 检索证据与生成指令 | 带上下文的生成答案 | 检索质量与答案忠实度分开 |
| 聊天机器人 | 对话、工具与业务状态 | 回答或动作 | 意图、工具权限、结果和恢复 |
这一区分会直接改变诊断方法。正确文档没有进入候选集,是召回或权限问题;文档进入前十但排在后面,是融合或重排问题;证据正确而回答编造,是生成与引用问题;用户想打开表单却得到一段解释,则是产品意图和交互问题。把所有失败统称为“模型不准”,只会导致无效地更换模型。
第二步:先治理语料,再谈算法
检索上限往往由语料决定。重复文件、失效页面、扫描 PDF、错误标题、缺失语言、混乱版本和不同权限副本会让最好的排序器也输出矛盾结果。每个可搜索对象应有稳定标识符、来源 URL、所有者、版本、创建与更新时间、有效期、语言、内容类型和 ACL;删除或撤销权限必须能同步到索引,而不是只从前台菜单隐藏。
| 治理项 | 实施动作 | 常见反例 | 测试 |
|---|---|---|---|
| 规范化 | 统一编码、正文、标题和字段 | 页眉页脚被重复索引 | 抽查解析前后差异 |
| 去重 | 保留主版本和版本关系 | 同一制度十个附件抢位 | 重复簇与主文档报告 |
| 分段 | 按标题、语义和引用边界切分 | 固定字符把表格与条件切断 | 答案证据能否完整落在片段 |
| 元数据 | 抽取产品、地区、日期和类型 | 全靠向量猜硬约束 | 字段覆盖率和错误率 |
| 版本 | 只默认展示有效版本 | 旧文档因点击多排在前面 | 时间旅行与撤销测试 |
| 权限 | 索引和查询都绑定 ACL | 召回后再从前端遮住 | 跨角色负面查询 |
分段不是越短越好。短片段有利于精确匹配,却可能丢失标题、限定条件和表格上下文;长片段保留语境,却增加噪声与计算量。应为不同内容类型设不同策略,例如 FAQ 以问答为单元,规范文档以标题层级为单元,表格保留表头,代码同时保存文件路径和符号。随后用查询集比较,而不是从博客复制一个固定字符数。
若资料来自多个业务系统,可参考AI 知识管理与知识库治理指南先确定所有者、更新与归档规则。搜索索引不是新的事实源;它应能回到原系统,并显示来源、版本和复核日期。
第三步:关键词、向量、混合检索和重排怎么选

Azure AI Search 的混合搜索文档把全文查询与向量查询并行执行,再合并结果;文档也指出产品代码、专业术语、日期和人名等精确匹配常受益于关键词搜索,概念相近或多语言内容可受益于向量搜索。其排序说明使用 Reciprocal Rank Fusion(RRF)融合多个有序列表:它依据各结果在列表中的名次,而不是把不同检索器未经校准的原始分数直接相加。OpenSearch 的 hybrid query同样提供组合多个子查询的路径。
| 方法 | 优势 | 易失败场景 | 最低基线 |
|---|---|---|---|
| 关键词/BM25 | 精确词、可解释、成本低 | 同义表达、跨语言、口语问题 | 字段权重、短语、同义词和过滤 |
| 学习稀疏检索 | 扩展词义又保留倒排结构 | 域外词、模型与索引耦合 | 与 BM25 同集对比 |
| 稠密向量 | 语义相近、自然语言查询 | 代码、人名、数字和硬约束 | 中文域内查询与负例 |
| 混合检索 | 同时保留精确和语义信号 | 候选池和融合权重失调 | 分路指标与融合消融 |
| 交叉编码重排 | 精排有限候选,理解查询-文档关系 | 高时延、高成本、候选无答案 | 只作用于 Top-N 并设超时降级 |
| 规则与业务加权 | 版本、权威性、新鲜度可控 | 规则堆叠、热门内容固化 | 每条规则有所有者和到期日 |
BEIR 研究在多类零样本任务上显示,BM25 仍是稳健基线;更复杂的交互和重排方法平均表现较强,但计算成本更高,而且不同数据集的胜者并不一致。MTEB也指出,没有一种文本嵌入方法在所有任务上占优;扩展到更多语言和任务的MMTEB更说明中文业务不能只看单一英文榜单名次。合理做法是从部署条件允许的两至三种候选开始,用自己的查询、语料、权限和成本预算比较。
融合与重排要保留每一路的诊断能力
混合检索不能只输出一个最终分数。至少要记录关键词列表、向量列表、各自名次、融合后名次、重排前后变化和触发的业务规则。否则某篇文档突然消失时,团队无法判断它是根本没有被某一路召回、在融合时被淹没,还是因权限或重排被移除。不同检索器的原始分数通常不在同一尺度上,未经校准直接相加会让数值范围更大的那一路支配结果;RRF 按名次融合可以减少这一问题,但仍需用本地数据选择候选深度和参数。
| 可调参数 | 调大可能得到 | 代价或风险 | 观察指标 |
|---|---|---|---|
| 单路候选数 | 更高召回机会 | 时延、内存和噪声增加 | 分路 Recall@k 与融合增益 |
| 向量近邻探索量 | 更接近精确近邻 | 查询计算增加 | 召回增益/P95 时延 |
| 融合权重 | 强调某类查询信号 | 其他意图静默退化 | 按意图切片的 nDCG |
| 重排候选 N | 精排看到更多潜在答案 | 调用成本与超时增加 | 重排增益/千次成本 |
| 新鲜度加权 | 新版更容易靠前 | 旧但权威内容被过度压制 | 版本正确率和相关性 |
重排器只能重新排列已经召回的候选,不能找回候选池中不存在的正确文档。因此优化顺序应是先确认 Recall@k,再检查融合,最后评估重排;若候选召回已经足够而前几名不稳定,重排才更可能产生价值。重排还要有超时降级:超时后回到融合结果,而不是让整个搜索页失败。对高频相同查询可以缓存,但缓存键必须包含租户、角色、过滤条件、索引版本和语言,权限变更时应能精确失效。
成本模型要在试点时写清,而不是上线后补算
检索成本不只是一台数据库的价格。还包括文档解析、OCR、嵌入生成、增量索引、存储副本、查询计算、重排调用、生成摘要、日志和标注复核。全量重嵌入可能在模型升级时形成突发费用,也可能占用索引吞吐并拖慢业务更新。应把一次性迁移成本与每月运行成本分开,并用查询峰值而非日均值做容量验证。
| 成本项 | 主要驱动 | 控制方法 | 不能牺牲的护栏 |
|---|---|---|---|
| 索引构建 | 文档量、分段数、模型调用 | 内容哈希与增量更新 | 删除和权限变更时效 |
| 向量存储 | 维度、片段、副本和量化 | 去重、合理分段、分层存储 | 关键查询召回 |
| 在线查询 | 候选深度、并发和过滤 | 路由、缓存和容量上限 | 租户与 ACL 隔离 |
| 重排 | Top-N、模型、输入长度 | 只用于高价值或困难查询 | 超时降级与结果稳定 |
| 人工评测 | 样本量、领域专家时间 | 风险分层和主动抽样 | 关键意图与负面权限集 |
查询理解:改写可以帮助,也可能改变用户意图
查询理解包括语言识别、拼写纠正、实体提取、时间解析、同义词、查询分类和改写。所有处理都应保留原查询;改写结果是候选信号,不是可以悄悄替换用户意图的“正确问题”。例如用户输入一个罕见型号,拼写纠正可能把它改成热门型号;用户问“不能报销的项目”,模型改写时可能丢掉否定词。
| 处理 | 何时有用 | 风险 | 保护措施 |
|---|---|---|---|
| 拼写纠正 | 常见错别字和键盘误触 | 改坏专有名词 | 原词与纠正词并行召回 |
| 同义词 | 组织内部别名 | 过度扩展导致噪声 | 按域、方向和版本维护 |
| 实体抽取 | 产品、地区、时间过滤 | 实体边界或值识别错误 | 允许用户查看和撤销过滤 |
| LLM 改写 | 长问题拆分、多角度召回 | 补出不存在条件 | 限制数量、保存改写、单独评测 |
| 对话补全 | “它支持吗”等省略查询 | 继承错误上下文 | 显示采用的实体并允许重置 |
权限必须在召回和摘要之前生效
企业搜索的严重失败不是“相关性低一点”,而是把用户无权访问的标题、片段、文件名或存在性泄露出来。仅在搜索结果页面隐藏链接不够,因为日志、缓存、自动摘要、联想词或 RAG 上下文可能已经接触了内容。ACL 应由可信身份映射到文档或片段,并在候选召回阶段前置过滤;索引更新、用户离职、群组变化和文档删除都要有可测的传播时限。
| 权限测试 | 输入 | 必须观察 | 失败动作 |
|---|---|---|---|
| 同文档跨角色 | 管理员、普通员工、外包 | 标题、片段、计数均不泄露 | 阻断上线 |
| 群组变更 | 加入或移除权限组 | 在承诺时间内生效 | 关闭缓存并回查索引 |
| 删除与撤回 | 源文档删除或权限撤销 | 索引、缓存、摘要同步消失 | 触发紧急清除 |
| 多租户 | 相同关键词跨租户查询 | 租户边界不可旁路 | 隔离索引或强制租户过滤 |
| 日志与分析 | 敏感查询和结果 | 最小化、脱敏、访问审计 | 停止采集多余字段 |
当检索结果交给大模型时,还要把文档当作不可信输入。网页或文件可能包含试图改变系统指令的文字。OWASP LLM01:2025明确说明,RAG 和微调不能完全消除提示注入。可行控制包括内容与指令分离、最小工具权限、敏感动作人工确认、输出验证和完整审计。更完整的系统风险拆解可参考AI 威胁建模实操指南。
第四步:建立能复现的离线评测集
“我搜了几个词感觉不错”不能支持上线。评测集应覆盖高频与长尾、简体中文与混合英文、错别字、简称、产品代码、否定词、时间条件、无答案、权限负例和容易混淆的近似文档。标注者要看到同一准则:结果是完全相关、部分相关、无关还是禁止展示;存在分歧时记录理由,而不是强迫一个虚假的唯一答案。
| 指标 | 回答的问题 | 适合场景 | 不能单独说明 |
|---|---|---|---|
| Recall@k | 正确结果是否进入前 k 个候选 | 召回阶段、RAG 取证 | 前几名排序是否好 |
| Precision@k | 前 k 个有多少相关 | 结果位有限的页面 | 是否漏掉其他正确结果 |
| MRR | 第一个正确结果出现多早 | 导航、单答案查询 | 多个相关结果的整体质量 |
| nDCG@k | 分级相关结果排序是否合理 | 有多个不同价值结果 | 权限和业务风险 |
| 零结果率 | 系统多久明确找不到 | 语料缺口诊断 | 零结果是好是坏 |
| 越权暴露率 | 无权结果是否被任何通道泄露 | 所有内部搜索 | 相关性高低 |
| P95 时延 | 大多数慢查询要等多久 | 线上体验和容量 | 结果是否有用 |
评测时至少保留系统版本、索引快照、嵌入与重排模型版本、查询参数、过滤条件、候选数量、随机因素和结果列表。只报告平均值会掩盖关键失败,应按意图、语言、权限、文档类型和查询长度切片。新方案提升语义问题却破坏错误码查询,就不是“总体更好”,而是需要路由或混合。

离线分数通过后,还要做线上任务评测
点击率可能奖励标题党或习惯位置,停留时间可能代表用户没找到答案,生成回答的“点赞”也可能只是语言流畅。因此线上指标要围绕任务:是否打开正确文档、是否完成后续操作、是否再次改写同一问题、是否转人工、是否报告过时或越权。A/B 测试前应写清主要指标、护栏、样本范围和停止条件,不在看过结果后临时更换成功标准。
| 线上信号 | 合理解释 | 可能误读 | 配套证据 |
|---|---|---|---|
| 首次成功 | 一次查询完成任务 | 用户直接离开未必成功 | 后续动作或快速反馈 |
| 查询改写 | 首轮结果未满足 | 探索型任务本来就会细化 | 按意图分层 |
| 结果点击 | 标题看起来相关 | 不等于内容解决问题 | 返回、停留与完成事件 |
| 人工转接 | 系统无法安全处理 | 复杂任务中可能是正确动作 | 转接原因和解决率 |
| 无结果 | 系统诚实拒绝 | 也可能是索引缺失 | 语料覆盖与候选日志 |
零结果、低置信度与引用应该怎么呈现
搜索系统必须允许“没有可靠结果”。用低相关文档填满页面看似降低零结果率,却会伤害信任;RAG 中更可能诱导模型把无关证据拼成答案。可在分数、方法一致性、文档权威性和查询类型上设置拒答规则,但阈值必须通过标注集校准。页面应告诉用户搜索了什么范围、采用了哪些过滤、怎样改写、如何报告缺口,而不是只显示“没有找到”。
| 状态 | 页面动作 | RAG 动作 | 记录 |
|---|---|---|---|
| 高置信且权限通过 | 展示片段、来源、版本 | 可生成并逐条引用 | 候选与最终证据 |
| 多结果冲突 | 并列并显示日期/所有者 | 说明冲突,不擅自裁决 | 冲突簇和用户选择 |
| 低置信 | 给筛选和改写建议 | 拒绝形成确定结论 | 阈值与触发原因 |
| 权限不足 | 不暴露标题或存在性 | 不传入模型上下文 | 策略命中,不记敏感正文 |
| 语料无覆盖 | 提供负责渠道 | 明确资料不足 | 内容缺口队列 |
引用要指向用户有权打开的原始页面,并尽量定位到标题、段落或表格,而不是只给一个站点首页。摘要必须忠于来源并显示版本;如果来源更新,缓存摘要也要失效。有关证据与上线的更通用方法,可阅读AI 项目证据、试点与上线验收指南以及AI 内容人工审核流程。
常见失败怎么定位
| 现象 | 先看哪一层 | 不要立刻做 | 可验证修复 |
|---|---|---|---|
| 正确文档完全没出现 | 解析、索引、ACL、召回 | 只调重排器 | 检查分路 Recall@k |
| 候选有但排名靠后 | 融合、特征、重排 | 扩大全部候选 | 比较重排前后 nDCG/MRR |
| 错误码搜不到 | 分词、字段、关键词路由 | 换更大嵌入模型 | 短语与原词召回回归 |
| 旧版本总在前面 | 版本字段、有效期、去重 | 人工删除单个结果 | 主版本规则与撤销测试 |
| 结果看似相关但无答案 | 片段边界、标签、候选深度 | 让大模型自行补全 | 证据充分性标注 |
| 偶发看到无权标题 | 缓存、联想词、摘要和日志 | 只修正文链接 | 全通道跨角色测试 |
30 天落地顺序
| 阶段 | 主要工作 | 交付物 | 进入下一阶段的门 |
|---|---|---|---|
| 第 1 周:定义 | 选一个知识域,抽取真实查询,定义权限与判断准则 | 查询集、ACL 矩阵、风险清单 | 业务与安全负责人签字 |
| 第 2 周:基线 | 解析去重,建立 BM25 和基础过滤 | 索引清单、错误报告、基线分数 | 删除与权限测试通过 |
| 第 3 周:比较 | 加入向量、混合和有限重排,做消融 | 分路指标、时延成本、失败切片 | 主要指标改善且护栏不退化 |
| 第 4 周:灰度 | 影子流量、小范围灰度、告警与回滚演练 | 线上仪表板、值班与回滚记录 | 达到停止条件再扩大 |
工具选择应服从运行边界:数据能否离开本地、需要哪种语言分词、过滤与 ACL 是否原生支持、索引多久更新、是否能导出查询日志、能否固定模型版本、预算如何计算、故障时是否降级到关键词搜索。若需要编排多种检索器,可了解Haystack 管线与评测指南,但框架不会替你完成语料所有权、标注集和权限设计。
上线前最终检查表
| 门禁 | 必须为真 | 证据 |
|---|---|---|
| 任务 | 每类查询有用户任务和失败定义 | 意图矩阵与样本 |
| 语料 | 来源、版本、所有者、删除链清楚 | 索引资产清单 |
| 权限 | 标题、摘要、缓存、日志均不越权 | 跨角色负面测试 |
| 相关性 | 相对基线按意图改善,无关键切片退化 | 版本化离线报告 |
| 体验 | 零结果、冲突和低置信度有明确路径 | 桌面与移动任务测试 |
| 运行 | 时延、成本、新鲜度在预算内 | 容量测试与仪表板 |
| 安全 | 不可信内容不获得工具权限 | 注入与工具滥用测试 |
| 发布 | 能按版本回滚并恢复基线搜索 | 演练时间和负责人 |
常见问题
有了向量数据库,还需要 Elasticsearch 或关键词搜索吗?
通常仍需要某种关键词或倒排能力。代码、型号、姓名、日期、法规条款和精确短语很容易在纯向量召回中丢失。是否使用某个具体产品取决于规模、过滤、ACL、语言、更新和运维要求,但“向量库等于完整搜索引擎”这个前提不成立。
混合检索一定比单路检索好吗?
不一定。它提供更多候选信号,也增加融合、容量和调参复杂度。如果查询几乎全是精确导航,良好的关键词基线可能已经足够;如果语料小且措辞稳定,向量的增益也可能有限。应通过分路消融确认每一路对哪些意图有贡献。
应该选择哪个嵌入模型?
先按中文、领域、部署方式、上下文长度、许可证、成本和更新稳定性筛出少量候选,再用本地查询集测试。不要只看一个公开排行榜;公开任务的语言、文档长度和负例分布可能与你的业务完全不同。
搜索结果能否直接交给大模型回答?
只有在权限、来源、版本和证据充分性通过后才应进入生成上下文。还要单独验证回答是否忠于证据、引用是否准确、低置信时是否拒答,以及检索内容是否试图注入指令。可结合RAG 评测框架把检索失败与生成失败分开。
什么时候才算可以扩大上线?
不是平均相关性分数提高就够了。至少应确认关键意图不退化、越权暴露为零、删除与权限变更按时生效、P95 时延和单次成本在预算内、低置信度有安全退路,并完成一次从新版本回滚到基线的演练。
编辑复核与纠错记录
本文由兰塞 AI 编辑流程于 2026 年 7 月 19 日重写。旧稿仅罗列 AI 搜索的泛化优点,缺少可执行的语料、权限、评测与上线方法;本次依据 Microsoft、OpenSearch、BEIR、MTEB、MMTEB 与 OWASP 一手资料,补充查询意图、六阶段管线、混合检索、重排、ACL、离线/在线指标、零结果和回滚门禁。未采用无法核验的客户案例、效率提升百分比或“某方法普遍最好”的断言。本站的来源、更新与纠错原则见关于本站与编辑规范。
