我有一个Azure Search
,它使用Azure Storage
作为数据源。我试图让Search
在Storage
中删除其结果中的文件,但不知怎么的,我似乎无法做到。
到目前为止,我已经尝试在Storage
上设置一个软删除策略,以便将文件保存7天,并在Search
上设置一个软删除策略,以检查元数据列IsDeleted
,以及true
是否从其结果中删除该项。然后使用代码更改元数据,然后按以下方式删除文件:
blob.Metadata["IsDeleted"] = "true";
blob.SetMetadataAsync().Wait();
blob.DeleteAsync().Wait();
如果没有删除,它似乎工作得很好,但是使用它,我想即使文件仍然保留,Search
也不能再访问元数据。我假设事情就像我们已经想好的那样简单,但我似乎找不到。
发布于 2019-05-15 01:07:32
简单地说,你不能在Azure搜索中使用软删除块。
当blob被软性地从存储中删除时,为了所有的意图和目的,blob将被删除。在首先删除blob之前,不能对blob执行任何操作。它也不会作为常规blob列表过程的一部分返回。
因此,当索引器运行以获取blob列表时,它不会找到软删除的blob。从搜索服务索引器的角度对blob进行标记的唯一方法是将blob保存在存储中,并将元数据属性"IsDeleted“设置为"true”。
https://stackoverflow.com/questions/56145002
复制