Změna a odstranění detekce pomocí indexerů pro Azure Storage ve službě Azure AI Search
Po vytvoření počátečního indexu vyhledávání můžete chtít, aby následné úlohy indexeru zabíraly jenom nové a změněné dokumenty. U indexovaného obsahu pocházejícího ze služby Azure Storage dochází k detekci změn automaticky, protože indexery sledují poslední aktualizaci pomocí předdefinovaných časových razítek u objektů a souborů ve službě Azure Storage.
I když je detekce změn daná, detekce odstranění není. Indexer nesleduje odstranění objektu ve zdrojích dat. Abyste se vyhnuli osamocenému hledání dokumentů, můžete implementovat strategii obnovitelného odstranění, která vede k prvnímu odstranění hledaných dokumentů s fyzickým odstraněním ve službě Azure Storage, která následuje v druhém kroku.
Existují dva způsoby implementace strategie obnovitelného odstranění:
- Nativní obnovitelné odstranění objektů blob (Preview) se vztahuje pouze na službu Blob Storage.
- Obnovitelné odstranění s využitím vlastních metadat
Strategie detekce odstranění by se měla použít od prvního spuštění indexeru. Pokud jste před počátečním spuštěním zásady odstranění nevytvořili, všechny dokumenty, které byly před implementací zásady implementovány, zůstanou ve vašem indexu, i když zásadu přidáte do indexeru později a resetujete ji. Pokud k tomu dojde, doporučujeme vytvořit nový index pomocí nového indexeru a zajistit, aby zásady odstranění byly zavedeny od začátku.
Požadavky
Použití indexeru Azure Storage pro Blob Storage, Table Storage, File Storage nebo Data Lake Storage Gen2
Používejte konzistentní klíče dokumentů a strukturu souborů. Změna klíčů dokumentu nebo názvů adresářů a cest (platí pro ADLS Gen2) přeruší interní informace sledování používané indexery, aby věděly, který obsah se indexoval a kdy byl naposledy indexován.
Poznámka:
ADLS Gen2 umožňuje přejmenování adresářů. Při přejmenování adresáře se časové razítka objektů blob v daném adresáři neaktualizují. V důsledku toho indexer tyto objekty blob znovu neindexuje. Pokud potřebujete, aby se objekty blob v adresáři přeindexovaly po přejmenování adresáře, protože teď mají nové adresy URL, budete muset aktualizovat LastModified
časové razítko pro všechny objekty blob v adresáři, aby indexer věděl, že je během budoucnosti znovu indexuje. Virtuální adresáře ve službě Azure Blob Storage nelze změnit, takže tento problém nemají.
Obnovitelné odstranění nativního objektu blob
V případě tohoto přístupu pro detekci odstranění služba Azure AI Search závisí na nativní funkci obnovitelného odstranění objektů blob ve službě Azure Blob Storage a určí, jestli se objekty blob přechádly do stavu obnovitelného odstranění. Když se v tomto stavu zjistí objekty blob, použije indexer vyhledávání tyto informace k odebrání odpovídajícího dokumentu z indexu.
Požadavky na nativní obnovitelné odstranění
Objekty blob musí být v kontejneru služby Azure Blob Storage. Zásady obnovitelného odstranění nativního objektu blob služby Azure AI Search nejsou podporované pro objekty blob v ADLS Gen2 nebo Azure Files.
Klíče dokumentů pro dokumenty v indexu se musí mapovat na vlastnost objektu blob nebo metadata objektů blob, jako je například "metadata_storage_path".
Pokud chcete nakonfigurovat podporu obnovitelného odstranění, musíte použít rozhraní REST API ve verzi Preview, například
2024-05-01-preview
konfiguraci zdroje dat indexeru na webu Azure Portal.Správa verzí objektů blob nesmí být v účtu úložiště povolená. V opačném případě není nativní obnovitelné odstranění podporováno návrhem.
Konfigurace nativního obnovitelného odstranění
Když v úložišti objektů blob povolíte obnovitelné odstranění podle požadavků, nastavte zásady uchovávání informací na hodnotu, která je mnohem vyšší než plán intervalu indexeru. Pokud dojde k problému se spuštěním indexeru nebo pokud máte velký počet dokumentů k indexování, existuje dostatek času, než indexer nakonec zpracuje obnovitelné odstraněné objekty blob. Indexery služby Azure AI Search odstraní z indexu jenom dokument, pokud zpracovává objekt blob v době, kdy je ve stavu obnovitelného odstranění.
Ve službě Azure AI Search nastavte nativní zásady detekce obnovitelného odstranění objektů blob ve zdroji dat. Můžete to udělat buď z webu Azure Portal, nebo pomocí rozhraní PREVIEWREST API (2024-05-01-preview
). Následující pokyny vysvětlují, jak nastavit zásady detekce odstranění na webu Azure Portal nebo prostřednictvím rozhraní REST API.
Přihlaste se k portálu Azure.
Na stránce Přehled služby Azure AI Search přejděte do části Nový zdroj dat, vizuální editor pro zadání definice zdroje dat.
Následující snímek obrazovky ukazuje, kde tuto funkci najdete na webu Azure Portal.
Ve formuláři Nový zdroj dat vyplňte požadovaná pole, zaškrtněte políčko Sledovat odstranění a zvolte Nativní obnovitelné odstranění objektu blob. Pak stiskněte uložit a povolte funkci při vytváření zdroje dat.
Přeindexování nedeletovaných objektů blob pomocí nativních zásad obnovitelného odstranění
Pokud obnovíte obnovitelně odstraněný objekt blob v úložišti objektů blob, indexer ho nebude vždy znovu indexovat. Důvodem je to, že indexer používá časové razítko objektu blob LastModified
k určení, jestli je indexování potřeba. Pokud se obnovitelně odstraněný objekt blob neaktualizuje, časové LastModified
razítko se neaktualizuje, takže pokud indexer už zpracoval objekty blob s novějšími LastModified
časovými razítky, nepřeindexuje nedeletovaný objekt blob.
Abyste měli jistotu, že se neindexovaný objekt blob přeindexuje, budete muset aktualizovat časové razítko objektu LastModified
blob. Jedním ze způsobů, jak to udělat, je opětovné uložení metadat tohoto objektu blob. Metadata nemusíte měnit, ale při opětovném uložení metadat se časové razítko objektu blob LastModified
aktualizuje, aby ho indexer věděl, že ho vyzvedne.
Strategie obnovitelného odstranění s využitím vlastních metadat
Tato metoda používá vlastní metadata k označení, zda má být vyhledávací dokument odebrán z indexu. Vyžaduje dvě samostatné akce: odstranění vyhledávacího dokumentu z indexu následované odstraněním souboru ve službě Azure Storage.
Tato funkce je obecně dostupná.
V Azure Storage i službě Azure AI Search je potřeba postupovat podle kroků, ale neexistují žádné další závislosti funkcí.
Ve službě Azure Storage přidejte do souboru dvojici klíč-hodnota vlastních metadat, která indikuje, že se soubor označí příznakem pro odstranění. Můžete například pojmenovat vlastnost IsDeleted, která je nastavená na hodnotu false. Pokud chcete soubor odstranit, změňte ho na true.
Ve službě Azure AI Search upravte definici zdroje dat tak, aby zahrnovala vlastnost dataDeletionDetectionPolicy. Následující zásada například považuje soubor za odstraněný, pokud má vlastnost
IsDeleted
metadat s hodnotoutrue
:PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2024-07-01 { "name" : "file-datasource", "type" : "azurefile", "credentials" : { "connectionString" : "<your storage connection string>" }, "container" : { "name" : "my-share", "query" : null }, "dataDeletionDetectionPolicy" : { "@odata.type" :"#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", "softDeleteColumnName" : "IsDeleted", "softDeleteMarkerValue" : "true" } }
Spusťte indexer. Jakmile indexer zpracuje soubor a odstraní dokument z indexu vyhledávání, můžete fyzický soubor odstranit ve službě Azure Storage.
Přeindexovat nedeletované objekty blob a soubory
Obnovitelné odstranění můžete vrátit zpět, pokud původní zdrojový soubor stále fyzicky existuje ve službě Azure Storage.
Změňte objekt
"softDeleteMarkerValue" : "false"
blob nebo soubor ve službě Azure Storage.Zkontrolujte časové razítko objektu blob nebo souboru
LastModified
, aby bylo novější než poslední spuštění indexeru. Aktualizaci aktuálního data a času můžete vynutit opětovným uložením existujících metadat.Spusťte indexer.