我在存储帐户中有一个 blob 容器,其中每个 blob 都是一个图像。我已将“w”和“h”元数据字段添加到每个包含图像宽度和高度的 blob。
我已按照此处的说明将搜索服务添加到 blob 存储,但我添加了元数据而不是 blob 内容。
我可以确认元数据存在并且有效,如果我浏览 Azure 门户中的 blob,我可以看到包含有效数据的字段,如果我在搜索资源管理器中执行“search=*”,我会为每个 blob 获取此信息:
{
"@search.score": 1,
"w": 640,
"h": 424,
"metadata_storage_path": "......"
}
我的问题是我想按图像宽度(w)和高度(h)搜索并且无法锻炼。
尝试了这些示例查询以搜索 w=640,但没有成功,只返回所有 blob 或错误:
w=640
search=*&w=640
search=*&w eq 640
w eq 640
我注意到的一件事是,在编写 blob 元数据时(我使用了 Azure 存储 Python 库),您只能编写字符串数据。但是当您指定数据源中的字段时,可以将它们设置为 int32。
如何启用对 blob 元数据字段的可过滤搜索?
编辑: 根据 SumanthMarigowda-MSFT 的回答,我查看了这个文档,在我的情况下,这里有一些示例查询:
仅 640x480:
search=*&$filter=(w eq 640 and h eq 480)
所有 w 介于 640 和 700 之间:
search=*&$filter=(w ge 640 and w lt 700)
MSDN 论坛上有类似的查询讨论,您可以参考此链接中提到的建议。