基本用法:
MarkdownHeaderTextSplitter 会从输出分块的内容中剥离被拆分的标题。可以通过设置 strip_headers = False 来禁用此功能。
默认的
MarkdownHeaderTextSplitter 会剥离空格和新行。若要保留 Markdown 文档的原始格式,请查看 ExperimentalMarkdownSyntaxTextSplitter。如何将 Markdown 行作为单独文档返回
默认情况下,MarkdownHeaderTextSplitter 根据 headers_to_split_on 中指定的标题聚合行。我们可以通过指定 return_each_line 来禁用此功能:
metadata 中都保留了标题信息。
如何限制分块大小:
在每个 Markdown 组内,我们可以应用任何我们想要的文本分割器,例如RecursiveCharacterTextSplitter,它允许进一步控制分块大小。
故障排除:chunk_overlap 似乎未生效
- 基于标题的拆分后(例如,
MarkdownHeaderTextSplitter),请使用split_documents(docs)(而不是split_text),以便重叠应用于每个部分内部,并且每部分的元数据(标题)保留在分块上。 - 仅当单个部分超过
chunk_size并被拆分为多个分块时,才会出现重叠。 - 重叠不会跨越部分/文档边界(例如,
# H1→## H2)。 - 如果标题变成很小的第一个分块,请考虑将
strip_headers设置为True,这样标题行就不会成为独立的分块。 - 如果您的文本缺少换行符/空格,请在
separators中保留一个后备"",以便分割器仍然可以拆分并应用重叠。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

