如何使用Azure AI Search拆分技能集对Description字段进行分块?
使用Azure AI Search拆分技能集处理长Description字段
1. 创建拆分技能集
你需要创建一个拆分技能(SplitSkill),针对description字段进行分块处理,配置最大分块长度和重叠值。以下是技能集的JSON配置示例:
{ "@odata.type": "#Microsoft.Skills.Text.SplitSkill", "name": "split-description-skill", "description": "拆分长Description字段为最大5000字符的块,保留重叠内容", "context": "/document", "defaultLanguageCode": "zh-Hans", // 根据文本语言调整,如英文用en-us "textSplitMode": "pages", // 按块拆分;若需按句子拆分可设为"sentences" "maximumPageLength": 5000, // 最大分块字符数 "pageOverlapLength": 500, // 块间重叠字符数,可按需调整 "inputs": [ { "name": "text", "source": "/document/description" } ], "outputs": [ { "name": "textItems", "targetName": "descriptionChunks" } ] }
2. 更新索引字段
拆分后的结果是字符串数组,需在现有索引中添加一个类型为Collection(Edm.String)的字段,用于存储分块内容。示例字段配置:
{ "name": "descriptionChunks", "type": "Collection(Edm.String)", "searchable": true, "filterable": false, "retrievable": true, "sortable": false, "facetable": false }
3. 关联技能集到索引器
将拆分技能集添加到已有的索引器中,配置字段映射,确保拆分后的内容能写入索引对应字段。索引器的技能集配置部分示例:
{ "name": "your-existing-indexer", "skillsetName": "your-split-skillset-name", // 对应你创建的拆分技能集名称 "outputFieldMappings": [ { "sourceFieldName": "/document/descriptionChunks", "targetFieldName": "descriptionChunks" } ] }
关键说明
pageOverlapLength:设置重叠字符是为了避免上下文断裂,建议根据文本内容调整(如500-1000字符),确保相邻块内容关联。textSplitMode:若description是段落分明的结构化文本,用pages模式更合适;若是连续无分段文本,可考虑sentences模式,避免截断完整句子。- 语言代码:
defaultLanguageCode需匹配文本语言,防止拆分时错误截断多字节字符(如中文)。
内容的提问来源于stack exchange,提问作者Hakuna0001
相关产品推荐
相关产品推荐

