azure - 使用 blob 名称筛选 Azure blob 搜索
问题描述
我有一个存储帐户,其中包含命名为生成虚拟层次结构的 blob:
Data/2016/image01.jpg
w=640
h=480
Data/2017/image02.jpg
w=320
h=240
...
所有 blob 都包含包含图像宽度(w)和高度(h)的元数据字段
我已经实现了一个搜索服务并将 blob 元数据添加为可搜索字段。
这可以很好地搜索所有 blob 并按 w 或 h 过滤:
search=*&$filter=(w eq 640)
我也对 blob 名称感到困惑。在容器之后的 AFAIK,所有 blob 都以平面形式存储,并且虚拟层次结构(如浏览 blob 时在 Azure 门户中所见)只是通过在 blob 名称中添加“/”而获得的。但是,当您获取metadata_storage_name
它时,它只返回名称的最后一段而不是完整路径。
如何按 blob 名称进一步过滤?例如,仅返回名称中包含“2017”且 w==640 的 blob
编辑: 我部分解决了我的问题。原来我没有添加$queryType=full
到queryType=full
我的搜索中。所以这样的事情会起作用: queryType=full&search=image02*&$filter=(w eq 640) 但仍然无法在搜索中包含blob“路径”。
解决方案
还有包含完整路径的metadata_storage_path字段。不幸的是,它还包含整个 blob 存储 URL。
metadata_storage_path (Edm.String) - blob 的完整 URI,包括存储帐户。例如,https://myaccount.blob.core.windows.net/my-container/my-folder/subfolder/resume.pdf
推荐阅读
- javascript - 价格比较器的跟踪代码管理器销售跟踪
- gruntjs - 为不可多任务的 grunt 插件创建两个配置
- html - 如何将主图像下方的图像和文本部分移动为重叠?
- android - 如何为回收站视图 onclick 功能添加动画?
- java - Google LoadingCache 无法存储加载的对象
- php - 与类新的 DateTime PHP 不一致
- c++ - 我的程序在调用 'parsePacket()' 后是继续执行还是等到它收到数据?
- swift - 滚动视图中的按钮不响应触摸
- php - 按 Key=>Value 拆分 PHP 数组
- android - Mapbox:机动后隐藏经过的路线