Azure Cognitive Search中DocumentExtractionSkill索引器实现报错排查
Azure Cognitive Search知识挖掘技能输入无效问题排查与修复
问题现象
在Blob Storage存储PDF文件并搭建知识挖掘解决方案,已完成数据源、索引、技能集及索引器的创建,但索引器运行时出现警告:
Could not execute skill because one or more skill input was invalid.
代码中的关键错误点及修复方案
1. 技能集输出路径拼写错误
原技能集代码中,DocumentExtractionSkill的输出target_name写成了/documents/content,路径需与上下文/document保持一致,多余的s会导致技能输出无法被后续映射正确识别。
修复后的技能集代码片段:
doc_extraction_skill = DocumentExtractionSkill( name="documentExtractionSkill", description="Extract text from documents", context="/document", configuration={"imageAction": "generateNormalizedImagePerPage"}, inputs=[InputFieldMappingEntry(name="file_data", source="/document/file_data")], # 修正target_name路径,去掉多余的s outputs=[OutputFieldMappingEntry(name="content", target_name="/document/content")] )
2. 索引器未允许技能集读取文件数据
原索引器的indexing_parameters中,allowSkillsetToReadFileData被设置为False,但DocumentExtractionSkill需要读取/document/file_data来提取文档内容,该配置会直接导致技能无法获取输入数据。
修复后的索引器配置片段:
indexing_parameters = IndexingParameters( configuration={ "indexStorageMetadataOnlyForOversizedDocuments": True, "failOnUnsupportedContentType": False, "indexedFileNameExtensions": ".pdf,.docx,.txt,.json", "parseJson": True, "parsingMode": "default", # 改为True,允许技能集读取文件数据 "allowSkillsetToReadFileData": True } )
3. 输出字段映射一致性确认
当前索引器的output_field_mappings中,源路径/document/content与修复后的技能集输出路径一致,无需修改:
output_field_mappings = [ FieldMapping(source_field_name="/document/content", target_field_name= "content"), ]
验证步骤
- 删除已创建的技能集和索引器
- 使用修复后的代码重新创建技能集和索引器
- 手动触发索引器运行,检查运行状态是否正常、警告是否消失
内容的提问来源于stack exchange,提问作者karim Alameh
相关产品推荐
相关产品推荐

