Azure Search中Blob自定义元数据返回Null的解决请求
Azure Search Blob自定义元数据返回Null的解决配置
问题描述
尝试在Azure Search中使用Blob自定义元数据pageurl,但搜索结果始终返回Null,当前未生效的配置如下:
Blob存储自定义元数据
pageurl = [具体值]
索引配置
{ "name": "metadata_storage_pageurl", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": false, "key": false, "indexAnalyzer": null, "searchAnalyzer": null, "analyzer": null, "normalizer": null, "dimensions": null, "vectorSearchProfile": null, "synonymMaps": [] },
索引器配置
"configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "default" } { "sourceFieldName": "metadata_storage_pageurl", "targetFieldName": "pageurl", "mappingFunction": null }
技能集配置
{ "name": "metadata_storage_pageurl", "source": "/metadata_storage_pageurl", "sourceContext": null, "inputs": [] }
已尝试操作:
- 混用
metadata_storage_pageurl和pageurl - 在字段前添加
/document/ - 其他多种配置调整
正确配置步骤
修正索引字段
自定义元数据在Azure Search中会自动添加metadata_前缀,无需使用系统内置的metadata_storage_前缀。修改索引配置,创建对应自定义元数据的字段:{ "name": "pageurl", "type": "Edm.String", "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": false }修正索引器字段映射
索引器的源字段需指向Blob自定义元数据对应的metadata_pageurl,目标字段匹配索引中的pageurl:"fieldMappings": [ { "sourceFieldName": "metadata_pageurl", "targetFieldName": "pageurl", "mappingFunction": null } ]保留索引器配置中
dataToExtract: "contentAndMetadata"的设置,该配置正确。移除冗余技能集配置
自定义元数据可直接通过索引器映射提取,技能集相关配置属于冗余操作,直接删除即可。重新运行索引器
完成配置修改后,重置并重新运行索引器,确保新配置生效并重新抓取Blob数据及元数据。
关键说明
- Azure Search对Blob自定义元数据的命名规则是自动添加
metadata_前缀,因此源字段名应为metadata_<自定义元数据键>,metadata_storage_是系统内置元数据(如存储路径、文件大小等)的前缀,不要混淆。 - 自定义元数据提取无需依赖技能集,索引器字段映射即可完成数据同步。
内容的提问来源于stack exchange,提问作者Rem
相关产品推荐
相关产品推荐

