我有一个Azure Search
,它使用Azure Storage
作为数据源。每当尝试在Search
中删除文件时,我都试图让Storage
从其结果中删除文件,但是我似乎无法实现。
到目前为止,我已经尝试在Storage
上设置软删除策略以将文件再保留7天,并在Search
上设置软删除策略以检查元数据列IsDeleted
,如果true
从结果中删除该项目。然后使用代码更改元数据,然后按如下所示删除文件:
blob.Metadata["IsDeleted"] = "true";
blob.SetMetadataAsync().Wait();
blob.DeleteAsync().Wait();
如果没有删除,它似乎可以正常工作,但是我猜想Search
即使文件仍然保留,也无法再访问元数据。我假设事情已经很简单了,但我似乎找不到。
答案 0 :(得分:1)
简短的回答是,您不能在Azure搜索中使用软删除Blob。
将blob从存储中软删除时,出于所有意图和目的,将删除blob。您无法先删除Blob,然后再对其执行任何操作。它也不会作为常规Blob列表过程的一部分返回。
由于这个事实,当索引器运行以获取Blob列表时,它找不到软删除的Blob。标记从搜索服务索引器角度删除的Blob的唯一方法是将Blob保留在存储中,并将您正在执行的元数据属性“ IsDeleted”设置为“ true”。