Как настроить политику мягкого удаления поиска Azure, подключенную к хранилищу Azure - PullRequest
0 голосов
/ 15 мая 2019

У меня есть Azure Search, который использует Azure Storage в качестве источника данных.Я пытаюсь заставить Search удалять файлы из его результата всякий раз, когда они удаляются в Storage, но почему-то я не могу этого добиться.

До сих пор я пытался настроить политику мягкого удаления на Storage, чтобы хранить файлы в течение еще 7 дней, и политику мягкого удаления на Search, чтобы проверить столбец метаданных IsDeleted и если true удалить элемент из его результатов.Затем, используя код, я изменяю метаданные, а затем удаляю файл следующим образом:

blob.Metadata["IsDeleted"] = "true";
blob.SetMetadataAsync().Wait();
blob.DeleteAsync().Wait();

Без удаления кажется, что он работает нормально, но с ним, я думаю, Search больше не сможет получить доступ к метаданным, даже еслифайл все еще сохраняется.Я предполагаю что-то столь же простое, как это уже продумано, но я не могу найти это.

1 Ответ

1 голос
/ 15 мая 2019

Короткий ответ: вы не можете использовать «мягкие» капли в поиске Azure.

Когда BLOB-объект мягко удаляется из хранилища, для всех целей и целей BLOB-объект удаляется. Вы не можете выполнить какие-либо операции с BLOB-объектом, прежде чем его сначала удалить. Он также не возвращается как часть обычного процесса создания списка BLOB-объектов.

Из-за этого факта, когда индексатор запускает выборку списка больших двоичных объектов, он не находит мягко удаленные большие двоичные объекты. Единственный способ пометить большой двоичный объект, удаленный с точки зрения индексатора службы поиска, - это сохранить большой двоичный объект в хранилище и установить для свойства метаданных «IsDeleted» значение «true», которое вы делаете.

...