Naplánování indexeru ve službě Azure AI Search
Indexery je možné nakonfigurovat tak, aby se spouštěly podle plánu při nastavování schedule
vlastnosti. Mezi situace, kdy je plánování indexeru užitečné, patří:
- Zdrojová data se mění v průběhu času a chcete, aby indexer automaticky zpracovával rozdíl.
- Zdrojová data jsou velmi velká a k indexování veškerého obsahu potřebujete opakovaný plán.
- Index je naplněný z více zdrojů pomocí více indexerů a chcete úlohy rozfázovat, aby se snížily konflikty.
Pokud indexování nejde dokončit v typickém 2hodinovém intervalu zpracování, můžete naplánovat spuštění indexeru na 2hodinovém tempu, abyste mohli pracovat s velkým objemem dat. Pokud váš zdroj dat podporuje logiku detekce změn, můžou indexery automaticky vyzvednout místo, kde skončily při každém spuštění.
Jakmile je indexer v plánu, zůstane v plánu, dokud nezaškrtnete interval nebo čas spuštění nebo nenastavíte disabled
hodnotu True. Pokud není nic ke zpracování, nebude mít indexer vliv na výkon systému. Kontrola změněného obsahu je poměrně rychlá operace.
Požadavky
Platný indexer nakonfigurovaný se zdrojem dat a indexem.
Detekce změn ve zdroji dat Azure Storage a SharePoint mají integrovanou detekci změn. Jiné zdroje dat, jako je Azure SQL a Azure Cosmos DB , musí být povolené ručně.
Definice plánu
Plán je součástí definice indexeru. schedule
Pokud vlastnost vynecháte, indexer se spustí jenom na vyžádání. Vlastnost má dvě části.
Vlastnost | Popis |
---|---|
"interval" | (povinné) Doba mezi začátkem dvou po sobě jdoucích spuštění indexeru. Nejmenší povolený interval je 5 minut a nejdelší je 1440 minut (24 hodin). Musí být formátovaná jako hodnota XSD dayTimeDuration (omezená podmnožina hodnoty doby trvání ISO 8601). Vzor pro toto je: P(nD)(T(nH)(nM)) . Příklady: PT15M každých 15 minut po PT2H dobu každé dvě hodiny. |
"startTime" | (volitelné) Čas zahájení je určen v koordinovaném univerzálním čase (UTC). Pokud tento parametr vynecháte, použije se aktuální čas. Tento čas může být v minulosti, v takovém případě je první spuštění naplánováno tak, jako kdyby indexer běžel nepřetržitě od původního času spuštění. |
Následující příklad je plán, který začíná 1. ledna o půlnoci a spouští se každé dvě hodiny.
{
"dataSourceName" : "hotels-ds",
"targetIndexName" : "hotels-idx",
"schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}
Konfigurace plánu
Plány se zadají v definici indexeru. K nastavení plánu můžete použít Azure Portal, rozhraní REST API nebo sadu Azure SDK.
- Přihlaste se k webu Azure Portal a otevřete stránku vyhledávací služby.
- V levém navigačním podokně vyberte Indexery.
- Otevřete indexer.
- Vyberte Nastavení.
- Posuňte se dolů k plánu a potom zvolte Hodinově, Denně nebo Vlastní a nastavte konkrétní datum, čas nebo vlastní interval.
Přepněte na kartu Definice indexeru (JSON) v horní části indexu a zobrazte definici plánu ve formátu XSD.
Nejčastější dotazy k chování při plánování
Můžu paralelně spustit více úloh indexeru?
Můžete spustit více indexerů současně, ale každý indexer je jedna instance. Současně nemůžete spustit dvě kopie stejného indexeru.
Pro indexování na základě textu může plánovač spustit tolik úloh indexeru, kolik vyhledávací služba podporuje, což je určeno počtem jednotek hledání. Pokud má například služba tři repliky a čtyři oddíly, můžete mít 12 úloh indexeru při aktivním spuštění, ať už iniciované na vyžádání, nebo podle plánu.
Indexery založené na dovednostech běží v konkrétním spouštěcím prostředí. Z tohoto důvodu nemá počet jednotek služeb žádný vliv na počet úloh indexeru založených na dovednostech, které můžete spustit. Paralelně může běžet několik indexerů založených na dovednostech, ale to závisí na dostupnosti procesoru obsahu v rámci spouštěcího prostředí.
Spouští se naplánované úlohy vždy v určený čas?
Procesy indexeru je možné zařadovat do fronty a nemusí se v závislosti na úloze zpracování a dalších faktorech začínat přesně v době odeslání. Pokud se například indexer stále spouští, když je jeho další naplánované spuštění nastaveno na spuštění, čeká se spuštění odloženo do dalšího naplánovaného výskytu, což umožní dokončení aktuální úlohy.
Pojďme se podívat na příklad, jak to udělat konkrétněji. Předpokládejme, že konfigurujeme plán indexeru s intervalem hodin a počátečním časem 1. ledna 2024 v 8:00:00 UTC. Co se může stát, když spuštění indexeru trvá déle než hodinu:
První spuštění indexeru začíná 1. ledna 2024 v 8:00 UTC nebo přibližně od 1. ledna 2024. Předpokládejme, že toto spuštění trvá 20 minut (nebo jakoukoli dobu kratší než 1 hodinu).
Druhé spuštění začíná 1. ledna 2024 9:00 UTC. Předpokládejme, že toto spuštění trvá 70 minut – více než hodinu – a nedokončí se do 10:10 UTC.
Třetí spuštění je naplánované tak, aby se spustilo v 10:00 UTC, ale v té době je předchozí spuštění stále spuštěné. Toto plánované spuštění se pak přeskočí. Další spuštění indexeru se nespustí do 11:00 UTC.
Poznámka:
Pokud máte přísné požadavky na provádění indexeru, které jsou citlivé na čas, měli byste zvážit použití modelu rozhraní API push, abyste mohli řídit kanál indexování přímo.
Co se stane, když se indexování opakovaně nezdaří ve stejném dokumentu?
Pokud je indexer nastavený na určitý plán, ale opakovaně selže na stejném dokumentu pokaždé, indexer začne běžet v méně častém intervalu (až do maximálního intervalu alespoň jednou za 2 hodiny nebo 24 hodin v závislosti na různých implementačních faktorech), dokud se úspěšně neprovádí znovu. Pokud se domníváte, že jste opravili základní problém, můžete indexer spustit ručně a pokud bude indexování úspěšné, vrátí se indexer do běžného plánu.
Další kroky
U indexerů, které běží podle plánu, můžete monitorovat operace načtením stavu z vyhledávací služby nebo získáním podrobných informací povolením protokolování prostředků.