[Dify实战] 不同分段方式对 RAG 召回效果的影响实战解析(含邮件清洗代码示例)

在基于Dify搭建企业知识库的过程中,很多人都会遇到一个问题:

👉 明明文档已经入库,Embedding 也正常生成,为什么 RAG 召回效果还是不理想?

尤其像我最近遇到「邮件入库」这种真实企业场景,问题会被放大——内容混杂、HTML 垃圾标签、冗余 CC 信息、签名区块、表格残留结构……这些都会直接影响向量质量和检索效果。

本文将结合真实项目经验,深入解析:

  • 为什么不同分段方式会极大影响 RAG 效果?

  • 邮件知识库入库前应该如何清洗?

  • 父子分段、全文分段、混合搜索如何选择?

  • TopK 如何设置才合理?

  • 给出完整可用的 Python 清洗代码示例


一、为什么分段方式决定 RAG 的“生死”?

在 RAG(Retrieval-Augmented Generation)架构中,核心流程是:

用户问题 → 向量化 → 向量检索 → TopK召回 → 拼接上下文 → LLM生成

影响召回效果的关键因素有三个:

  1. 文本质量(是否干净)

    </