You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure AI Search中用SplitSkill按页面拆分PDF文档?

解决Azure AI Search中SplitSkill无法按页码拆分PDF并显示页码的问题

核心问题原因

你当前使用/document/mergedText作为SplitSkill的输入源,这个字段是将整个PDF的所有页面文本合并后的结果,已经丢失了原生的分页边界和页码信息,所以即便设置textSplitMode: pages也无法按原文档页码拆分。

具体修复步骤

1. 调整SplitSkill的输入源与上下文

将技能集的输入源从合并文本改为单个页面的内容,同时把上下文切换到每个页面层级,确保拆分操作与原页码绑定:

修正后的技能集JSON:

{
  "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
  "name": "#2",
  "description": "Split skill to chunk documents by page",
  "context": "/document/pages/*",
  "defaultLanguageCode": "en",
  "textSplitMode": "pages",
  "inputs": [
    {
      "name": "text",
      "source": "/document/pages/*/content"
    }
  ],
  "outputs": [
    {
      "name": "textItems",
      "targetName": "pageChunks"
    }
  ]
}

2. 配置索引字段存储页码

在你的Azure AI Search索引中添加一个pageNumber字段,类型设为Edm.Int32,用于存储每个拆分块对应的原文档页码。

3. 确保索引器提取分页元数据

在索引器的配置中,设置dataToExtract: contentAndMetadata,确保系统能从PDF中提取每个页面的pageNumber元数据:

{
  "name": "your-indexer-name",
  "dataSourceName": "your-datasource-name",
  "targetIndexName": "your-index-name",
  "skillsetName": "your-skillset-name",
  "configuration": {
    "dataToExtract": "contentAndMetadata",
    "parsingMode": "default"
  },
  "fieldMappings": [
    {
      "sourceFieldName": "/document/pages/*/pageNumber",
      "targetFieldName": "pageNumber"
    }
  ]
}

4. 关联拆分块与页码

在技能集的输出映射中,确保每个拆分后的文本块(pageChunks)与对应的pageNumber绑定,这样在索引时每个搜索条目都会携带原文档的页码信息。

搜索结果中显示页码

当你执行搜索查询时,只需在select参数中指定返回pageNumber字段,即可在结果中看到答案对应的原文档页码。例如:

POST /indexes/your-index-name/docs/search?api-version=2023-11-01
{
  "search": "your-query",
  "select": "pageNumber, content, other-fields"
}

内容的提问来源于stack exchange,提问作者alice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:53:27