召回数量不等于返回数量,因返回需经Rerank截断、权限过滤、标量条件筛选及去重;设召回数为K,实际返回=K−Rerank截断数−权限过滤数−标量不匹配数−去重数。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在火山引擎知识检索中,设置“召回数量”却得不到预期条数的返回结果,是高频踩坑点。根本原因在于:召回是向量库从海量向量中粗筛出候选集的过程,而返回是经过重排(Rerank)、权限过滤、业务规则拦截后最终呈现给用户的子集。
召回数量(Retrieval Top-K)是什么
这是向量数据库执行ANN近似最近邻搜索时,强制返回的原始相似向量片段数量。例如设为20,系统会从亿级向量中快速捞出语义最接近的20个切片——这个动作发生在Embedding层,不涉及内容质量判断。
它受HNSW图索引层级、IVF分桶精度、量化压缩(PQ/SQ)粒度直接影响。若设为50但实际只返回42条,说明有8条在Rerank前就被标量过滤器(如过期时间字段expire_at )或权限策略(如tenant_id != current_tenant)直接剔除。
返回数量(Final Result Count)怎么确定
返回数量 = 召回数量 − Rerank截断数 − 权限过滤数 − 标量条件不匹配数 − 重复去重数。
其中Rerank模型(如豆包Rerank)会对20个召回结果重新打分,按新分数排序后仅保留Top-N(默认N=10)。这一步不可跳过,且【Rerank阶段会丢弃低置信度结果,即使它们通过了向量相似度阈值】。你无法通过调高召回数绕过该机制——设为100召回,若Rerank判定其中91条相关性不足,最终仍只返回9条。
关键参数配置实操步骤
第一步:登录火山引擎控制台 → 进入「知识引擎」→ 选择目标知识库 → 点击「检索配置」。
第二步:在「混合检索」模块中,找到「召回数量」滑块,拖动至所需值(建议RAG场景设为30~50,避免内存抖动;私域问答类设为10~20)。
第三步:向下滚动至「结果重排」区域,确认「返回数量」输入框数值 ≤ 「召回数量」。若此处填20但上一步设为15,系统将自动截断并静默报错,最终只返回15条。
第四步:勾选「启用标量过滤」后,在下方字段中添加业务约束条件(如doc_type == "manual"),每增加一个过滤条件,实际返回数可能下降15%~40%,需同步提高召回数量对冲。
两个典型错误配置及修正
方法一:盲目增大召回数量应对返回不足
错误表现:把召回数从20拉到100,返回数仍卡在8条。
真实原因:权限策略拦截了92条,Rerank又筛掉剩余中的7条。
修正操作:先在「权限管理」中检查当前API Key所属角色是否拥有目标知识库的read:chunk权限,再进入「Rerank配置」降低分数阈值(slider向左移)。
方法二:忽略多关键词并行对召回的放大效应
当启用「关键词并行数=3」时,系统会将用户问题拆解为3个变体查询,每个变体独立召回K条,最终合并去重。若设召回数=20,则理论最大候选池为60条,但Rerank仍只取全局Top-10返回。
【开启关键词并行时,必须将召回数量设为单次需求的3倍以上,否则并行失去意义】











