想象一座城市同时运营着两种出行方式:公交车线路固定、只在站牌停靠,你说出准确的站名,它就能准时送你到站;网约车没有固定线路,你说个大概方向,司机凭理解把你送到楼下,但每单成本更高、高峰期还要排队。用户出门时不会自己琢磨该坐公交还是叫车,而是打给调度中心——调度员根据目的地信息,快速判断派哪种车。这座“调度中心”,就是混合检索系统里的查询路由(Query Routing):它站在用户查询和多种检索通道之间,为每一趟“出行”选择最合适的通道。稀疏检索(关键词)像公交,稠密检索(语义向量)像网约车,而查询路由则负责派单。本文将从规则路由讲到学习路由,再聊延迟、回退、训练和工程落地,帮你彻底理解这个混合搜索的“智慧大脑”。
对 AI 从业者而言,查询路由是混合检索落地时性价比最高的优化点之一:一个轻量路由模型就能同时降低延迟、节省算力成本并提升整体检索效果,是面试和实战中都绕不开的核心技能。
可视化演示
模拟查询路由根据查询特征选择稀疏或稠密检索通道,展示路由决策、双通道对比与RRF结果融合过程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
模式1:路由决策流程 词法特征→精确匹配→稀疏检索 语义特征→描述查询→稠密检索 channel = Classifier(features(query)) 路由器根据查询特征选择最优通道。
路由概述
城市调度中心的价值在哪里?它让每一单出行都花最少的时间、最少的钱到达目的地。如果每趟车都让乘客自己去路口拦,早高峰会乱成一锅粥。混合检索系统也是一样:稀疏检索和稠密检索各有优势,但用户并不关心“通道”这个概念,他们只想要最匹配的结果。查询路由,就是那个站在用户和通道之间的“调度中心”。
在混合检索架构里,检索通道通常不止一条:稀疏检索基于倒排索引做精确关键词匹配,稠密检索基于向量相似度做语义理解,还有两者并行的混合通道。路由模块在召回(Retrieval)阶段之前插入一层决策:给定一个查询,先判断走哪条通道,再交给对应的检索后端执行。这个决策要足够快、足够准,因为它是所有查询的必经之路。
从数学上看,路由决策可以抽象成一个从查询到通道的映射函数。路由的目标是在给定查询时,选择“最可能产出好结果”的通道,而不是机械地让所有查询都走同一条路。现代路由系统的决策粒度也不断细化:可以是通道级(dense 还是 sparse),也可以细到索引分片级、甚至模型版本级。
调度中心不会让乘客在雨里纠结半天“该坐什么车”,路由也一样——它把“选通道”这件专业事从用户手里接过来,变成系统内部一次毫秒级的决策。
- 查询 $q$查询就是用户输入的那段自然语言文本,比如“如何申请年假”,它是路由决策的唯一输入。
- 路由函数 $f_{\text{route}}$它是一段策略代码或一个分类模型,负责把查询映射到最合适的通道上。
- 路由结果 $r$最终选中的通道代号,它决定了后续查询请求被转发给哪个检索后端。
- 候选集合三个互相补充的选项——稠密通道靠向量语义,稀疏通道靠词项精确,混合通道则是两者并行,适合难以抉择的查询。
规则路由
新调度员上岗第一天,师傅给他一本《调度手册》:乘客报出完整站名,派公交;乘客说“我要去个大概什么方向的地方”,派网约车;高峰期公交优先,雨天网约车优先……这本手册,就是基于规则的查询路由。它把人类的经验直觉,翻译成一条条 if-else 规则。
编写规则路由时,工程师会从查询里提取一些容易计算的特征做判断。最常用的特征是查询长度:短查询往往信息不足、存在歧义,交给稠密检索用语义理解更合适;长查询包含大量精确词,交给稀疏检索做 BM25 精确匹配性价比更高。此外,查询中是否含引号(精确匹配意图)、是否含型号代码、是什么语言、属于哪个垂直领域,都可以作为规则分支的依据。
规则路由在简单场景下非常有效:可解释、零训练成本、延迟几乎可以忽略。它的数学形态就是一个分段函数:当查询特征落入某个区间时,走对应的分支。下面的公式展示了一个最简单的规则——用查询长度 $|q|$ 与阈值 $\tau$ 比较,决定走哪条通道。
手册虽好,却写不完城市的每一种突发状况。规则路由最大的问题是维护成本:每新增一种查询模式,就要加一条规则;规则之间还可能互相冲突。当城市越来越大,调度员开始意识到——光靠手册,不够用了。
- 查询长度 $|q|$查询分词后的词项数量,比如“年假申请流程”长度为 5。
- 阈值 $\tau$工程师根据经验人工设定的分界线,比如 10 个词,需要通过线下数据调优。
- 条件分支当查询长度不超过阈值时,说明查询简短、语义模糊,交给稠密检索理解。
- 反向分支查询很长时,说明用户已经给出足够精确的信息,用稀疏检索做词项匹配更快更准。
学习路由
老调度员退休前带了个徒弟,徒弟每天坐在调度台前看她派单,看了整整三个月。三个月后,徒弟开始自己接手,虽然说不清理由,但派的车越来越准。这个“说不出理由却学得会”的徒弟,就是基于学习的查询路由。
学习路由把路由决策建模为一个分类问题:输入是查询,输出是通道类别。模型从海量历史数据中自动学习“什么样的查询适合什么样的通道”,而不是靠人肉写规则。常用的模型包括逻辑回归(Logistic Regression)、梯度提升树(GBDT)等轻量分类器——因为路由要求低延迟,模型必须足够小、足够快。
特征工程是学习路由的关键环节。常用的特征有:查询长度、词频统计、是否含精确匹配符号、查询的向量表示(用预训练模型把 query 编码成 embedding)、查询所属领域或意图类别等。模型将特征向量映射为每个通道的概率,最后取概率最大的通道作为路由结果。下面是用 softmax 分类器做路由决策的数学形式:
徒弟的经验来自三个月里看过的十万次派单,学习路由的经验则来自历史查询数据。规则路由是“师傅说”,学习路由是“我自己学会了判断”——它不再需要人一条条写规则,但需要高质量的数据来投喂。
- 特征映射 $\phi(q)$把查询文本变成数字向量,比如用词频加查询长度的组合,让模型能“算”而不是“读”。
- 通道得分 $w_k^{\top} \phi(q)$第 $k$ 个通道类别对应的权重 $w_k$ 与特征向量做内积,得到这个通道的得分。
- Softmax 归一化把所有通道的得分取指数并求和,把得分转换成总和为 1 的概率分布。
- 决策取 argmax选概率最大的通道,作为最终的路由结果 $r$。
延迟与回退
调度员最怕什么?一是想太久,二是派错车。乘客打电话进来说“我要去机场”,调度员翻手册想了五分钟才派车——乘客早挂了电话自己打车走了;调度员一分钟内派了公交,结果乘客要去的是新机场,公交根本不到——乘客回来投诉,调度中心还得赶紧补派一辆网约车。这两件事,对应路由系统的两个核心问题:延迟开销和误路由回退。
路由本身是一次额外的计算,它花掉的时间会直接叠加到总查询延迟上。如果路由决策要 100ms,而实际检索只要 50ms,那路由就成了最大的性能瓶颈。因此在工程上,路由模型必须轻量,决策时间通常要控制在 10ms 以内。另一方面,误路由不可避免——没有任何模型能 100% 猜中用户的真实意图。所以系统必须设计回退机制:当路由选中的通道返回的结果质量较差(比如最高分低于阈值、结果数太少、或触发超时),自动尝试另一个通道,兜底保证用户体验。
延迟和回退可以用一个期望公式来描述。总延迟等于路由时间加上检索时间,再加上“误路由概率 × 回退额外开销”。这个公式揭示了三个设计杠杆:让路由更快、让检索更快、让误路由率更低。
好调度员的原则是“宁可多问一句,不可错派一趟”——但系统里不能真的“多问”,只能靠阈值兜底。回退机制就像调度中心的应急预案:派错车不可怕,怕的是没有换车的能力。
- 路由时间 $T_{\text{route}}$路由模型做一次通道判断的耗时,要求远小于检索耗时,否则路由成为瓶颈。
- 检索时间 $T_{\text{search}}$被选中的通道真正执行召回的耗时,与通道类型和后端性能有关。
- 误路由率 $p_{\text{err}}$路由选错通道的概率,是模型能力的直接体现,通常在 5\%~30\% 之间。
- 回退时间 $T_{\text{fallback}}$发现派错车后,补跑另一个通道所花费的额外时间;回退越快,用户体验损失越小。
训练与更新
新调度员的成长路径是三段式:先在培训中心学三个月,再上岗实习,之后每个月都要回炉复盘当月遇到的新案例。学习路由模型的生命周期也一样:离线训练 → 上线部署 → 在线更新。
离线训练的第一步是构造数据。训练数据需要“查询 + 最优通道标签”的配对。标签从哪来?最直接的办法是:把历史查询分别在稠密和稀疏通道各跑一遍,用评估指标(如 NDCG、Recall@K)或线上反馈(点击率、转化率)来判断哪条通道效果更好,把效果更好的通道当作标签。这个“上帝视角”的标注过程可以在离线自动完成,不需要人工逐条标注。模型训练的目标就是让预测的通道尽量匹配这个最优标签。训练完成后模型上线,用新产生的查询持续评估效果。
但查询分布不是一成不变的——双十一大促时全是商品词,新品发布后多了一批新品牌词。模型必须在线更新:常见的做法是定期用最近一周的日志数据重新训练,或者在离线重训之间插入轻量的在线学习(如在线梯度下降)作为补充。冷启动时没有足够历史数据,可以先用规则路由顶着,攒够了数据再切换成学习路由,这也是一种实际的降级策略。下面是二分类交叉熵损失及其梯度更新公式:
调度员每个月复盘,是为了不让经验过时;路由模型持续更新,是为了不让决策落后于查询分布的变化。训练不是一次性的,而是伴随系统全生命周期的持续动作。
- 标签 $y_i$第 $i$ 条查询的真实最优通道,通过双通道对跑实验得出,1 表示稀疏通道、0 表示稠密通道。
- 预测概率 $\hat{y}_i$模型输出“走稀疏通道”的概率,越接近真实标签说明预测越准。
- 交叉熵损失 $\mathcal{L}$真实标签与预测概率之间的负对数似然,损失越小,路由决策和最优决策越一致。
- 梯度更新 $w \leftarrow w - \eta \nabla_w \mathcal{L}$用损失对权重求梯度,乘以学习率 $\eta$ 后沿反方向更新权重,让模型逐步逼近最优。
系统工程
调度中心最终不是一张桌子加一个调度员,而是一整个大厅:大屏幕实时显示各路况、每个调度台分配不同片区、所有通话录音留档用于复盘、应急预案装在抽屉里随时可取。查询路由的工程落地,也是如此。
在实际系统中,路由服务位于查询入口之后、多个检索后端之前。完整的查询链路是:用户查询进入网关 → 路由服务根据查询特征和模型决策选择通道 → 请求转发至稠密检索后端或稀疏检索后端 → 返回候选结果 → 后续融合排序。路由服务本身要支持配置化:规则可以热更新,模型可以灰度切换,避免一次上线事故把整个检索链路拖垮。部署上,路由模块必须足够轻量,通常和检索服务部署在同一机房甚至同一进程内,避免额外的网络开销。
监控是工程的另一只眼睛。关键指标包括:路由决策准确率、路由耗时、总查询延迟分位数(P50/P95/P99)、回退率、各通道的流量占比。这些指标既能评估路由质量,也能在异常时快速定位问题:比如回退率突然升高,往往意味着路由模型需要更新或者规则配置有误。工程上还常配合 AB 测试,让新路由策略只对部分流量生效,对比指标后再全量发布。下面的公式定义了验证路由模型效果时最直接的准确率指标:
调度中心的大厅里,没有人关心某一次派单是怎么做决定的,大家只关心大屏上的指标是不是健康。路由系统的工程化,就是把“聪明的一次性判断”变成“稳定运转的日常服务”。
- 测试集规模 $M$用于评估的查询样本总数,通常来自线上日志的留出集,保证覆盖真实场景。
- 路由预测 $r_j$模型对第 $j$ 条查询做出的通道选择。
- 真实最优 $r_j^{*}$通过双通道对跑实验得到的“上帝视角”最优通道。
- 指示函数 $\mathbf{1}\{\cdot\}$当预测与真实一致时取 1、否则取 0,对所有样本取平均即得到准确率。
AI 应用场景
电商平台的商品搜索路由
阶段:检索召回阶段的路由决策
解决的问题:用户在电商平台搜“苹果”时,可能是想买苹果手机,也可能是想买水果;搜“iPhone 15 保护壳”这类精确长词时,关键词匹配已经足够好,没必要每次都用大模型做向量语义检索,白白增加延迟和算力成本。传统做法是让所有查询都走同一条向量检索通道,成本高且精确词场景效果不佳。
具体案例:某电商平台在搜索架构中接入查询路由:短查询(如“苹果”“小白鞋女”)走稠密语义通道,利用向量召回理解模糊意图;含品牌型号的长查询(如“iPhone 15 Pro 256G 黑色”)走稀疏关键词通道,用 BM25 精确匹配商品标题。路由模型还会结合历史点击数据,识别出哪些查询在某个通道上的点击率显著更高,动态调整路由策略。上线后该平台搜索链路平均延迟降低 35%,GPU 算力成本下降约 20%,搜索转化率提升 8%。
企业知识库问答的降本增效
阶段:RAG 管道的查询预处理与检索分流
解决的问题:企业内部知识库问答中,“报销流程是什么”这类问题适合用稀疏检索精确命中制度文档的标题和关键词;而“同事总在会议上打断我怎么办”这类开放式问题没有精准关键词,必须靠稠密检索理解语义。如果所有问题都走向量检索,长尾制度类查询召回反而变差;如果都走关键词,开放式问题又答非所问。
具体案例:某企业内部 AI 助手在知识库问答管道中增加了查询路由模块。路由分类器接收查询文本,提取长度、词频、是否包含制度关键词等特征,将查询分流到不同的检索引擎;同时设置了回退机制——当稀疏检索引擎返回的结果置信度低于阈值时,自动补充一次稠密检索。系统上线后,问答命中率从 68% 提升至 84%,同时整体查询响应时间缩短约 30%。
Python 演示
# -*- coding: utf-8 -*-"""演示两种查询路由方案:规则路由 vs 学习路由。用模拟数据训练一个逻辑回归路由分类器,对比两者在"选择稀疏/稠密检索通道"上的准确率。"""import numpy as np def make_data(seed=42): """构造模拟数据: 特征=[查询长度, 是否含精确词, 是否问句], 标签=最优通道""" rng = np.random.default_rng(seed) N = 2000 X, y = [], [] for _ in range(N): q_len = int(rng.integers(2, 30)) has_exact = int(rng.random() < 0.3) is_question = int(rng.random() < 0.2) if q_len < 8 and not has_exact: label = 0 # 短查询 + 无精确词 -> 稠密语义通道 elif q_len >= 15 and (has_exact or is_question): label = 1 # 长查询 + 精确词/问句 -> 稀疏关键词通道 else: label = 0 if rng.random() < 0.4 else 1 X.append([q_len, has_exact, is_question]) y.append(label) return np.array(X, dtype=float), np.array(y) def rule_route(feat): """规则路由: 查询长度>=12 或 含精确词时走稀疏通道, 否则走稠密通道""" q_len, has_exact, _ = feat return 1 if (q_len >= 12 or has_exact) else 0 def train_logistic(X, y, lr=0.05, epochs=300): """用梯度下降训练逻辑回归, 返回权重向量 w""" X_aug = np.hstack([X, np.ones((X.shape[0], 1))]) # 偏置列 w = np.zeros(X_aug.shape[1]) for _ in range(epochs): logits = X_aug @ w prob = 1.0 / (1.0 + np.exp(-logits)) grad = X_aug.T @ (prob - y) / len(y) w -= lr * grad return w def lr_route(feat, w): """学习路由: 特征加权得分>=0 走稀疏通道, 否则走稠密通道""" aug = np.array(feat + [1.0]) return 1 if (aug @ w) >= 0 else 0 def main(): X, y = make_data() rule_pred = np.array([rule_route(f) for f in X]) rule_acc = (rule_pred == y).mean() print("规则路由准确率: %.2f" % rule_acc) w = train_logistic(X, y) lr_pred = np.array([lr_route(f, w) for f in X]) lr_acc = (lr_pred == y).mean() print("学习路由准确率: %.2f" % lr_acc) print("学到的权重(长度/精确词/问句/偏置):", w) if __name__ == "__main__": main()
if q_len < 8 and not has_exact:模拟“上帝视角”的最优通道标签:短查询且没有精确词时,稠密语义通道更优,标注为 0。rule_pred = np.array([rule_route(f) for f in X])用写死的规则给所有样本做预测,作为对照基线。X_aug = np.hstack([X, np.ones((X.shape[0], 1))])把偏置项拼进特征矩阵,这样权重向量的最后一维就是阈值偏移,简化了模型表达。logits = X_aug @ w线性得分,即公式中的 $w^{\top}\phi(q)$,每个样本的特征与权重做内积。prob = 1.0 / (1.0 + np.exp(-logits))Sigmoid 函数把得分压到 0~1 之间,作为“走稀疏通道”的概率。grad = X_aug.T @ (prob - y) / len(y)交叉熵损失对权重的梯度,直觉上就是“预测概率减真实标签”的残差乘以特征。w -= lr * grad沿梯度反方向更新权重,让模型逐步向“预测更准”的方向移动。return 1 if (aug @ w) >= 0 else 0学习路由的决策规则:得分非负走稀疏通道,否则走稠密通道。
常见误区
误区“查询路由不就是判断一下查询长度然后走不同通道吗?我写个 if-else 一小时就能搞定,为什么要学这么复杂?”
正解简单的规则路由确实能用一行 if-else 实现,但它只在查询分布稳定的小场景有效。真实系统的查询分布极其复杂——多义词、中英文混合、长尾新词、不同领域的查询特征天差地别。规则路由维护超过几十条规则后就会变得不可控,规则之间互相冲突、边界情况叠床架屋。学习路由的价值在于从数据中自动学到“说不清但很准”的判断边界,同时能随数据分布漂移而更新,这不是手写规则能覆盖的。
为何常见:规则路由的起点太简单,让人误以为路由的全部就是几个规则;而实际上路由的核心难点在于数据、评估和持续迭代。
误区“查询路由就是在稠密和稀疏两条通道里选一条,不存在第三种可能。”
正解路由的候选集合完全由系统设计决定,除了选稠密或选稀疏,还可以选混合(hybrid)通道——即两个通道并行召回,再融合结果。混合通道耗时更长、成本更高,但在查询意图特别模糊时效果最好。更精细的路由系统还可以在“仅稠密”“仅稀疏”“稠密优先稀疏兜底”“双通道并行”等多种模式之间做选择,甚至根据当前系统负载动态调整候选策略。
为何常见:教材和案例为了讲解清晰,常以二分类举例,导致学习者把二分类当成了路由的全部形态。
误区“反正把所有通道都跑一遍再融合结果,效果一定比路由选一个通道好,那还要路由干嘛?”
正解全通道并行确实能规避误路由风险,但代价是延迟上升和算力成本成倍增加。在搜索场景每毫秒都影响用户转化,在 RAG 场景每个额外通道都会增加 LLM 调用的等待时间。查询路由的核心价值恰恰是在“效果”和“成本”之间取平衡:让简单查询走轻量通道,只把复杂查询交给重型通道,再用回退机制兜底误判。路由 + 回退的整体期望效果,可以在接近全并行的质量下,把平均延迟和成本降低一个数量级。
为何常见:初学者只看到“全并行效果最好”的一面,忽略了工程上延迟和成本的约束才是路由存在的根本原因。
误区“路由分类器是离线训练好的,上线之后只要没有 bug 就可以一直跑,不需要再管它。”
正解查询分布是动态变化的:电商大促期间商品词暴涨、社会热点事件带来全新的长尾查询、新用户群体带来不同的语言习惯。如果路由模型不更新,它的判断就会逐渐偏离真实的最优通道,表现为回退率上升、检索效果下滑。生产级路由系统都有在线更新机制:定期用最新日志重训模型,配合滑动窗口保留近期样本,再通过监控指标触发应急更新。路由模型和调度员一样,需要持续进修。
为何常见:离线训练是完整流程里最显眼的一步,让人误以为模型上线即结束;实际上持续运营才是工程系统的主旋律。
面试题
Q1. 在混合检索架构中,查询路由的核心职责是什么?
- A.对检索结果进行精确排序
- B.为查询选择合适的检索通道← 正确答案
- C.压缩索引以降低存储开销
- D.重写用户查询以提升召回
答案:B。查询路由就像调度中心,职责是决策“这单派公交还是网约车”,而不是亲自开车。排序是排序模块的活,索引压缩和查询改写是其他优化手段,都不属于路由的核心职责。
Q2. 用户输入“iPhone 15 Pro 256G 黑色”做搜索,哪种路由策略最合理?
- A.始终选择稠密语义检索通道
- B.始终选择稀疏关键词精确匹配← 正确答案
- C.按照查询长度随机选择通道
- D.直接拒绝该查询不返回结果
答案:B。这条查询包含完整的型号和规格词,是“报出了准确站名的公交乘客”,稀疏检索的 BM25 精确匹配就能高效命中。完全走语义通道反而可能引入噪声,随机选择或拒绝更是无理取闹。
Q3. 与“写死规则的调度手册”最对应的是哪种路由方式?
- A.基于规则的查询路由← 正确答案
- B.基于学习的查询路由
- C.向量最近邻检索
- D.倒排索引精确匹配
答案:A。规则路由就是人工把经验写成 if-else 规则,和调度手册是一个性质;学习路由是 AI 调度员从数据里自己学判断;向量检索和倒排索引是被路由选择的通道,不是路由本身。
Q4. 查询“苹果手机和苹果哪种更值得买”在电商场景下,路由模型最应解决的问题是什么?
- A.分词后去掉所有标点符号
- B.判断苹果指品牌还是水果品种← 正确答案
- C.把查询翻译成多种语言
- D.计算查询哈希以加速缓存
答案:B。“苹果”是个多义词,指品牌还是水果对应不同的商品体系和检索策略。路由模型可以结合上下文、领域词表和历史行为判断查询意图,进而选择更合适的通道。分词、翻译、哈希都不是路由层面的核心问题。
Q5. 路由决策自身的延迟开销过大,最可能导致什么后果?
- A.检索结果全部变成错误
- B.总体查询延迟上升体验变差← 正确答案
- C.索引文件大小自动翻倍
- D.稠密向量维度发生变化
答案:B。总延迟 = 路由时间 + 检索时间 + 回退期望时间。路由时间直接叠加进总延迟,如果调度员想太久,乘客早就等不及走了。路由延迟过大不会改变检索结果本身,也不会影响索引或向量维度。
Q6. 关于稀疏检索和稠密检索,下列哪些描述正确?
- A.稀疏检索依赖倒排索引匹配← 正确答案
- B.稠密检索借助向量语义理解← 正确答案
- C.两者只能二选一不能混合
- D.路由基于查询特征做取舍← 正确答案
答案:ABD。稀疏检索基于倒排索引做精确词匹配,稠密检索用向量语义理解“大概意思”,二者各有所长。C 错误——混合搜索正是两者取长补短,查询路由则是根据查询特征在二者之间做取舍的调度员。
Q7. 某查询先走了稀疏通道,但返回结果质量很差,系统自动切换稠密通道重试。这个过程叫什么?
- A.对索引进行水平分片存储
- B.对用户查询进行同义改写
- C.误路由之后的自动回退← 正确答案
- D.大模型蒸馏小模型
答案:C。这是典型的误路由回退:路由一开始选错通道,发现结果质量不达标后自动“换车”到另一个通道。索引分片是存储方案,查询改写是预处理,模型蒸馏是模型压缩手段,都和这个场景无关。
Q8. 训练一个学习式查询路由模型时,哪些是合理的训练标签来源?
- A.两通道分别跑历史查询取优← 正确答案
- B.人工标注理想通道数据集← 正确答案
- C.线上指标隐性反馈构造← 正确答案
- D.完全随机生成标签再拟合
答案:ABC。标签的来源可以是“双通道对跑取效果更好的一方”(上帝视角)、人工标注的“理想通道”数据集,也可以用线上点击率等指标做隐性反馈。D 完全随机生成标签等于给调度员随机答案,模型学不到任何真实规律。
Q9. 查询路由模型上线后,哪些信号出现时应当触发在线更新?
- A.新商品上线查询分布漂移← 正确答案
- B.误路由回退率持续上升← 正确答案
- C.大促期间长尾词激增← 正确答案
- D.单次查询结果完全正常
答案:ABC。查询分布漂移、回退率上升、大促带来的新词洪峰,都是“调度员需要进修”的信号。单次查询正常只是个体样本没有问题,不代表全局模型不需要更新,D 不能作为触发更新的依据。
Q10. 路由耗时 10ms,主检索耗时 50ms,误路由率 20%,误路由后回退补跑另一通道再耗时 50ms。该查询的平均总耗时期望为多少毫秒?
- A.55 毫秒(只算路由与主检索)
- B.60 毫秒(加入一半的回退成本)
- C.70 毫秒(计入期望回退时间)← 正确答案
- D.100 毫秒(每次必发生一次回退)
答案:C。总耗时期望 = 10 + 50 + 0.2 × 50 = 70ms。A 忽略了误路由的成本,D 把 20% 误路由当成 100% 误路由,B 的错误在于把回退成本减半处理,与 20% 的误路由率对不上。这也说明误路由率是路由工程质量的关键数字。