如何设置附加到 Azure 存储的 Azure 搜索软删除策略
How to setup an Azure Search soft-delete policy attached to Azure Storage
我有一个使用 Azure Storage
作为数据源的 Azure Search
。我试图让 Search
从结果中删除文件,只要它们在 Storage
中被删除,但不知何故我似乎无法实现它。
到目前为止,我已尝试在 Storage
上设置软删除策略以将文件再保留 7 天,并在 Search
上设置软删除策略以检查元数据列 IsDeleted
如果 true
从结果中删除该项目。然后使用代码更改元数据,然后按如下方式删除文件:
blob.Metadata["IsDeleted"] = "true";
blob.SetMetadataAsync().Wait();
blob.DeleteAsync().Wait();
不删除它似乎工作正常,但我猜 Search
不能再访问元数据,即使文件仍然保留。我假设已经想到了这么简单的东西,但我似乎找不到它。
简而言之,您不能在 Azure 搜索中使用软删除 blob。
当从存储中软删除 blob 时,出于所有目的和目的,该 blob 将被删除。在先取消删除之前,您不能对 blob 执行任何操作。它也不会作为常规 blob 列表过程的一部分返回。
因此,当索引器运行以获取 blob 列表时,它不会找到软删除的 blob。从搜索服务索引器的角度标记已删除 blob 的唯一方法是将 blob 保存在存储中并将元数据 属性 "IsDeleted" 设置为 "true",这就是您正在做的。
我有一个使用 Azure Storage
作为数据源的 Azure Search
。我试图让 Search
从结果中删除文件,只要它们在 Storage
中被删除,但不知何故我似乎无法实现它。
到目前为止,我已尝试在 Storage
上设置软删除策略以将文件再保留 7 天,并在 Search
上设置软删除策略以检查元数据列 IsDeleted
如果 true
从结果中删除该项目。然后使用代码更改元数据,然后按如下方式删除文件:
blob.Metadata["IsDeleted"] = "true";
blob.SetMetadataAsync().Wait();
blob.DeleteAsync().Wait();
不删除它似乎工作正常,但我猜 Search
不能再访问元数据,即使文件仍然保留。我假设已经想到了这么简单的东西,但我似乎找不到它。
简而言之,您不能在 Azure 搜索中使用软删除 blob。
当从存储中软删除 blob 时,出于所有目的和目的,该 blob 将被删除。在先取消删除之前,您不能对 blob 执行任何操作。它也不会作为常规 blob 列表过程的一部分返回。
因此,当索引器运行以获取 blob 列表时,它不会找到软删除的 blob。从搜索服务索引器的角度标记已删除 blob 的唯一方法是将 blob 保存在存储中并将元数据 属性 "IsDeleted" 设置为 "true",这就是您正在做的。