Appearance
6.3.2 什么时候应该按文档级检索,什么时候按 Chunk 级检索?
先给结论:文档级检索更适合先确定“哪篇文档相关”,chunk 级检索更适合直接定位“哪段内容相关”。该选哪一种,关键看问题需要的是整篇上下文,还是局部片段。
所以这不是谁更先进的问题,而是:
- 你到底要先找文档,还是先找片段
文档级检索更适合什么问题
文档级检索更适合这些场景:
- 用户在问某篇文档整体讲什么
- 后面还需要在文档内部继续浏览或抽取
- 一篇文档本身就是最小知识单元
- 问题依赖较大范围上下文
例如:
- “这份退款政策主要讲了什么?”
- “这篇接口文档里有没有讲幂等?”
这类问题里,先确定相关文档,通常比直接找一句话更自然。
Chunk 级检索更适合什么问题
chunk 级检索更适合这些场景:
- 用户问的是具体规则、条件、字段或局部结论
- 需要直接定位某一段内容
- 一篇文档里主题很多,不适合整篇一起召回
- 想控制上下文长度和噪声
例如:
- “定制类商品支持无理由退货吗?”
- “createOrder 的 timeout 默认值是多少?”
这类问题里,直接定位相关 chunk 往往更高效。
两者最核心的差别是什么
可以先这样理解:
文档级检索:先找容器chunk 级检索:先找片段
文档级更强调:
- 相关文档身份
- 整体上下文
chunk 级更强调:
- 局部精确命中
- 片段粒度控制
为什么很多系统会两者结合
因为真实问题并不总是纯粹只适合一种。
很多系统会采用这样的思路:
- 先按文档级找出相关文档
- 再在文档内部找相关 chunk
或者反过来:
- 先 chunk 级召回
- 再按
doc_id聚合回文档
这也是为什么这两个概念更像是:
- 不同粒度的检索设计
而不是对立方案。
什么情况下更该谨慎用文档级检索
如果文档本身很长、主题很多,文档级检索常见风险是:
- 整篇命中,但真正相关段落不突出
- 上下文太大,噪声变多
- 后续生成很容易被不相关部分干扰
这类场景里,直接走 chunk 级通常会更稳。
什么情况下更该谨慎用 chunk 级检索
如果一个问题明显依赖大范围上下文,chunk 级检索常见风险是:
- 片段过于局部
- 用户真正想看的整体语境丢掉了
- 回答时缺乏完整文档背景
这类问题里,只看 chunk 容易把事情切得太碎。
一个常见误区
很多人会觉得:
- chunk 级更细,所以一定更好
这不成立。
更细并不总等于更对。
如果问题本来就需要整篇或大段上下文,过早切成 chunk 级召回,反而可能把信息打散。
一句话总结
文档级检索适合先确定相关文档,chunk 级检索适合直接定位局部内容。关键不是谁更高级,而是问题需要整篇上下文还是局部片段。很多稳定系统最终会把两种粒度结合起来用。