Azure AI Search:无需自定义技能能否生成指定组合索引字段?
实现方案:无需自定义技能即可完成
可以通过Azure认知搜索索引器的内置字段映射函数实现需求,无需编写自定义技能。具体操作是利用字符串拼接(concat)和字符串替换(replace)函数组合处理字段:
核心逻辑
- 先用
replace函数去除metadata_storage_name中的.csv扩展名,得到纯文件名(比如把xyz.csv转为xyz) - 再用
concat函数将Type字段值、字面量@、处理后的文件名拼接成目标字符串
字段映射配置示例
在索引器的fieldMappings数组中添加以下映射规则(假设目标字段名为TypeWithFilename):
{ "fieldMappings": [ // 保留原有字段映射 { "sourceFieldName": "concat(/document/Type, ' @ ', replace(/document/metadata_storage_name, '.csv', ''))", "targetFieldName": "TypeWithFilename", "mappingFunction": { "name": "concat", "parameters": { "inputs": [ { "source": "/document/Type" }, { "source": " @ " }, { "source": "/document/metadata_storage_name", "mappingFunction": { "name": "replace", "parameters": { "find": ".csv", "replaceWith": "" } } } ] } } } ] }
注意事项
- 如果你的CSV文件存在多种扩展名(比如
.csv之外的格式),可以将replace函数的find参数改为正则表达式,比如/\.csv$/i来匹配不同大小写或确保只替换末尾的扩展名 - 确保目标索引中已预先创建
TypeWithFilename字段(类型为Edm.String)
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

