Dela via


Schemalägga en indexerare i Azure AI Search

Indexerare kan konfigureras att köras enligt ett schema när du anger egenskapen schedule . Några situationer där indexerarens schemaläggning är användbar är:

  • Källdata ändras med tiden och du vill att indexeraren ska bearbeta skillnaden automatiskt.
  • Källdata är mycket stora och du behöver ett återkommande schema för att indexering av allt innehåll.
  • Ett index fylls i från flera källor med flera indexerare och du vill flytta jobben för att minska konflikterna.

När indexeringen inte kan slutföras inom det typiska 2-timmars bearbetningsfönstret kan du schemalägga att indexeraren ska köras på en 2-timmars kadens för att arbeta med en stor mängd data. Så länge datakällan stöder logik för ändringsidentifiering kan indexerare automatiskt fortsätta där de slutade på varje körning.

När en indexerare är enligt ett schema förblir den enligt schemat tills du rensar intervallet eller starttiden, eller är inställd disabled på true. Att lämna indexeraren enligt ett schema när det inte finns något att bearbeta påverkar inte systemets prestanda. Att söka efter ändrat innehåll är en relativt snabb åtgärd.

Förutsättningar

  • En giltig indexerare som konfigurerats med en datakälla och ett index.

  • Ändringsidentifiering i datakällan. Azure Storage och SharePoint har inbyggd ändringsidentifiering. Andra datakällor, till exempel Azure SQL och Azure Cosmos DB , måste aktiveras manuellt.

Schemadefinition

Ett schema är en del av indexerarens definition. Om egenskapen schedule utelämnas körs indexeraren endast på begäran. Egenskapen har två delar.

Property beskrivning
"intervall" (krävs) Tiden mellan starten av två efterföljande indexerarekörningar. Det minsta tillåtna intervallet är 5 minuter och det längsta är 1 440 minuter (24 timmar). Det måste formateras som ett XSD-värde "dayTimeDuration" (en begränsad delmängd av ett ISO 8601-varaktighetsvärde ).

Mönstret för detta är: P(nD)(T(nH)(nM)).

Exempel: PT15M var 15:e minut för PT2H varannan timme.
"startTime" (valfritt) Starttiden anges i samordnad universell tid (UTC). Om den utelämnas används den aktuella tiden. Den här tiden kan vara tidigare, i vilket fall den första körningen schemaläggs som om indexeraren har körts kontinuerligt sedan den ursprungliga starttiden.

Följande exempel är ett schema som börjar den 1 januari vid midnatt och körs varannan timme.

{
    "dataSourceName" : "hotels-ds",
    "targetIndexName" : "hotels-idx",
    "schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}

Konfigurera ett schema

Scheman anges i en indexeraredefinition. Om du vill konfigurera ett schema kan du använda Azure Portal, REST-API:er eller ett Azure SDK.

  1. Logga in på Azure Portal och öppna söktjänstsidan.
  2. I det vänstra navigeringsfönstret väljer du Indexerare.
  3. Öppna en indexerare.
  4. Välj Inställningar.
  5. Rulla ned till Schema och välj sedan Varje timme, Dagligen eller Anpassad för att ange ett specifikt datum, tid eller anpassat intervall.

Växla till fliken Indexeringsdefinition (JSON) överst i indexet för att visa schemadefinitionen i XSD-format.

Vanliga frågor och svar om schemaläggningsbeteende

Kan jag köra flera indexerarjobb parallellt?

Du kan köra flera indexerare samtidigt, men varje indexerare är en enda instans. Du kan inte köra två kopior av samma indexerare samtidigt.

För textbaserad indexering kan schemaläggaren starta så många indexeringsjobb som söktjänsten stöder, vilket bestäms av antalet sökenheter. Om tjänsten till exempel har tre repliker och fyra partitioner kan du ha 12 indexerarjobb i aktiv körning, oavsett om de initieras på begäran eller enligt ett schema.

För kunskapsbaserad indexering körs indexerare i en specifik körningsmiljö. Därför har antalet tjänstenheter ingen betydelse för antalet kompetensbaserade indexeringsjobb som du kan köra. Flera kunskapsbaserade indexerare kan köras parallellt, men det beror på tillgängligheten för innehållsprocessorn i körningsmiljön.

Startar schemalagda jobb alltid vid den angivna tiden?

Indexerarprocesser kan placeras i kö och kanske inte startar exakt vid den tidpunkt som publiceras, beroende på bearbetningsarbetsbelastningen och andra faktorer. Om en indexerare till exempel fortfarande körs när nästa schemalagda körning är inställd på att starta, skjuts den väntande körningen upp till nästa schemalagda förekomst, vilket gör att det aktuella jobbet kan slutföras.

Låt oss överväga ett exempel för att göra detta mer konkret. Anta att vi konfigurerar ett indexerarschema med ett intervall per timme och en starttid den 1 januari 2024 kl. 08:00:00 UTC. Det här kan hända när en indexerare körs längre än en timme:

  1. Den första indexeringskörningen börjar omkring den 1 januari 2024 kl. 08:00 UTC. Anta att den här körningen tar 20 minuter (eller någon tid som är mindre än 1 timme).

  2. Den andra körningen startar omkring den 1 januari 2024 kl. 09:00 UTC. Anta att den här körningen tar 70 minuter – mer än en timme – och att den inte slutförs förrän kl. 10:10 UTC.

  3. Den tredje körningen är schemalagd att starta kl. 10:00 UTC, men vid den tidpunkten körs den tidigare körningen fortfarande. Den här schemalagda körningen hoppas sedan över. Nästa körning av indexeraren startar inte förrän 11:00 UTC.

Kommentar

Om du har strikta krav på indexeringskörning som är tidskänsliga bör du överväga att använda push-API-modellen så att du kan styra indexeringspipelinen direkt.

Vad händer om indexeringen misslyckas upprepade gånger i samma dokument?

Om en indexerare är inställd på ett visst schema men upprepade gånger misslyckas med samma dokument varje gång, börjar indexeraren köras med ett mindre frekvent intervall (upp till det maximala intervallet på minst en gång var 2:e timme eller 24:e timme, beroende på olika implementeringsfaktorer) tills det lyckas igen. Om du tror att du har åtgärdat det underliggande problemet kan du köra indexeraren manuellt, och om indexeringen lyckas återgår indexeraren till sitt vanliga schema.

Nästa steg

För indexerare som körs enligt ett schema kan du övervaka åtgärder genom att hämta status från söktjänsten eller få detaljerad information genom att aktivera resursloggning.