如何通过索引器将Azure存储容器Blob文档的自定义标签映射至Azure认知搜索?
使用Azure认知搜索索引器映射自定义标签到搜索索引字段
完全可以通过索引器将Azure存储Blob的自定义标签映射到搜索索引字段,具体操作步骤如下:
确认自定义标签的存储格式:Azure存储Blob的自定义标签属于
Tags属性(和普通Metadata是分开的),以键值对形式存储,比如department:engineering、project:AI这类结构。创建/更新搜索索引字段:根据自定义标签的类型,在搜索索引中添加对应字段:
- 如果是单值标签(每个键对应唯一值),创建
Edm.String类型字段,比如department; - 如果是多值标签(一个键对应多个值,或需要收集所有标签),创建
Collection(Edm.String)类型字段,比如allTags。
- 如果是单值标签(每个键对应唯一值),创建
配置索引器的字段映射:在索引器的配置中,通过
fieldMappings指定从Blob的Tags属性提取值并映射到索引字段。示例配置如下:
"fieldMappings": [ // 映射单个标签键到对应索引字段 { "sourceFieldName": "/tags/department", "targetFieldName": "department" }, { "sourceFieldName": "/tags/project", "targetFieldName": "project" }, // 映射所有标签值到集合字段 { "sourceFieldName": "/tags/*", "targetFieldName": "allTags", "mappingFunction": { "name": "collect", "parameters": { "delimiter": ";" } } } ]
这里的/tags/[标签键]是固定格式,用来定位Blob Tags中的对应键值;collect函数可以将多个标签值合并到集合字段中。
- 验证索引器运行结果:启动索引器完成数据同步后,查看搜索索引中的文档数据,确认自定义标签已正确映射到目标字段,之后即可通过这些字段进行检索操作。
额外注意:
- 确保索引器的数据源拥有访问Azure存储容器Blob Tags的权限;
- 若标签值包含特殊字符,需确保索引字段的类型和映射函数能正确处理;
- 若后续新增自定义标签,需要同步更新索引字段和索引器的映射规则。
内容的提问来源于stack exchange,提问作者Sarang Kulkarni
相关产品推荐
相关产品推荐

