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

Azure中用SplitSkill拆分大文档:认知搜索+OpenAI集成遇阻

Azure认知搜索与OpenAI集成优化问题

我正尝试优化Azure认知搜索与OpenAI集成的性能,从SharePoint索引大体积文档时遇到问题:需要拆分文档,让认知搜索仅返回OpenAI所需的片段而非完整文档。使用#Microsoft.Skills.Text.SplitSkill技能集时,无法将content拆分为名为pages的数组,最终目标是将内容拆分为多个保留原文件路径的文档。

当前索引结构

{    
    "name" : "{{index-name}}",    
    "fields": [        
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },        
        { "name": "metadata_spo_item_name", "type": "Edm.String", "key": false, "searchable": true, "filterable": false, "sortable": false, "facetable": false },        
        { "name": "metadata_spo_item_path", "type": "Edm.String", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },        
        { "name": "metadata_spo_item_content_type", "type": "Edm.String", "key": false, "searchable": false, "filterable": true, "sortable": false, "facetable": true },        
        { "name": "metadata_spo_item_last_modified", "type": "Edm.DateTimeOffset", "key": false, "searchable": false, "filterable": false, "sortable": true, "facetable": false },        
        { "name": "metadata_spo_item_size", "type": "Edm.Int64", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },        
        { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false },        
        { "name": "pages", "type": "Collection(Edm.String)", "searchable": true, "filterable": false, "sortable": false, "facetable": false }    
    ]
}

当前技能集配置

{    
    "name": "{{skillset-name}}",    
    "description": "SharePoint skillset",    
    "skills": [        
        {            
            "@odata.type": "#Microsoft.Skills.Text.SplitSkill",            
            "name": "#1",            
            "description": null,            
            "context": "/document/id",            
            "defaultLanguageCode": "en",            
            "textSplitMode": "pages",            
            "maximumPageLength": 5000,            
            "inputs": [                
                {                    
                    "name": "text",                    
                    "source": "/document/content"                
                }            
            ],            
            "outputs": [                
                {                    
                    "name": "textItems",                    
                    "targetName": "pages"                
                }            
            ]        
        }    
    ]
}

问题排查与解决要点

  • 修正上下文配置:当前SplitSkill的context设为/document/id,会导致拆分片段关联到文档ID而非整个文档对象,需改为/document,确保pages数组直接附加到文档根对象。
  • 补充字段映射:检查索引器的字段映射规则,添加pages字段的映射,确保技能集输出正确同步到索引:
    {
        "sourceFieldName": "/document/pages",
        "targetFieldName": "pages",
        "mappingFunction": null
    }
    
  • 验证拆分逻辑:若使用pages模式拆分,需确认文档包含标准分页符;若无分页符,可切换为sentences模式并调整maximumPageLength参数,确保拆分生效。
  • 实现多文档拆分:若要将单个文档拆分为多个独立索引文档(共享同一文件路径),需结合ShaperSkill生成新文档对象,并配置索引器保留metadata_spo_item_path等元数据字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:52:40