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

如何将PDF提取的表格映射至Azure Search索引及配置自定义技能

方案解答

1 是否可以作为自定义技能添加

完全可以。你提到的ExtractTables项目本身就是按照Azure认知搜索自定义技能的接口规范开发的,返回的values数组结构完全符合技能组的输入输出要求,直接部署为函数应用后即可添加到你的现有技能组中使用。

2 索引Schema设计

根据你的业务场景可选择两种设计方案:

方案一:通用存储方案(适配任意表格结构)

适合表格格式不固定、不需要按表格字段做结构化筛选的场景,直接把完整的表格结构存入索引的复杂类型数组字段:

{
  "name": "你的索引名称",
  "fields": [
    // 原有其他字段(比如文档ID、文档名称、正文内容等)
    {
      "name": "id",
      "type": "Edm.String",
      "key": true,
      "searchable": false
    },
    {
      "name": "extracted_tables",
      "type": "Collection(Edm.ComplexType)",
      "fields": [
        { "name": "page_number", "type": "Edm.Int32", "searchable": false, "filterable": true },
        { "name": "row_count", "type": "Edm.Int32", "searchable": false },
        { "name": "column_count", "type": "Edm.Int32", "searchable": false },
        {
          "name": "cells",
          "type": "Collection(Edm.ComplexType)",
          "fields": [
            { "name": "text", "type": "Edm.String", "searchable": true },
            { "name": "rowIndex", "type": "Edm.Int32", "searchable": false },
            { "name": "colIndex", "type": "Edm.Int32", "searchable": false },
            { "name": "confidence", "type": "Edm.Double", "searchable": false },
            { "name": "is_header", "type": "Edm.Boolean", "searchable": false }
          ]
        }
      ]
    },
    // 可选:合并所有表格文本用于全文检索
    {
      "name": "all_table_content",
      "type": "Edm.String",
      "searchable": true,
      "retrievable": false
    }
  ]
}

方案二:固定结构映射方案(适配固定格式表格)

如果你的PDF表格结构固定,比如示例中是商品清单,表头为Item/Quantity/Rate/Amount,可以直接映射为结构化字段,查询和筛选效率更高:

{
  "name": "你的索引名称",
  "fields": [
    // 原有其他字段
    {
      "name": "id",
      "type": "Edm.String",
      "key": true,
      "searchable": false
    },
    {
      "name": "product_list",
      "type": "Collection(Edm.ComplexType)",
      "fields": [
        { "name": "item", "type": "Edm.String", "searchable": true, "filterable": true },
        { "name": "quantity", "type": "Edm.Int32", "searchable": false, "filterable": true, "sortable": true },
        { "name": "rate", "type": "Edm.Double", "searchable": false, "filterable": true, "sortable": true },
        { "name": "amount", "type": "Edm.Double", "searchable": false, "filterable": true, "sortable": true },
        { "name": "page_number", "type": "Edm.Int32", "searchable": false, "filterable": true }
      ]
    }
  ]
}

3 数据映射方法

  • 通用方案:直接在技能组的输出字段映射中,将ExtractTables技能输出的/document/tables路径映射到索引的extracted_tables字段即可;如果需要合并表格全文,可额外添加一个整形器技能把所有单元格的text拼接为字符串,映射到all_table_content字段。
  • 固定结构方案:需要在ExtractTables技能后新增一个自定义整形技能,按照行号遍历表格,将每行对应列索引的内容映射为item/quantity等字段,生成结构化的商品数组后,再映射到索引的product_list字段即可。

内容的提问来源于stack exchange,提问作者Mr. code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:09:01