Schemalägga en indexerare i Azure AI-sökning

Kommentar

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Ange egenskapen schedule för att konfigurera indexerare att köras enligt ett schema. Schemaläggning av indexerare är användbart i situationer som:

  • Källdata ändras över tid och du vill att indexeraren ska bearbeta skillnaden automatiskt.
  • Källdata är mycket stor, och du behöver ett återkommande schema för att indexera 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 schemalägger du indexeraren så att den körs på en 2-timmars kadens för att arbeta med en stor mängd data. Så länge datakällan stöder ändringsdetektionslogik kan indexerare automatiskt fortsätta där de slutade på varje körning.

När du har satt en indexerare enligt ett schema förblir den enligt schemat tills du rensar intervallet eller starttiden eller anger disabled till sant. Om en schemalagd indexerare oväntat slutar att köras, se Vanliga frågor om schemaläggningsbeteende för återställningssteg. Att ha indexeraren schemalagd 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. För andra datakällor, till exempel Azure SQL och Azure Cosmos DB, måste du aktivera ändringsidentifiering manuellt.

Schemaläggningsdefinition

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

Fastighet beskrivning
"intervall" (krävs) Tiden mellan starten av två på varandra följande indexerutföranden. Det minsta tillåtna intervallet är 5 minuter och det längsta är 1 440 minuter (24 timmar). Formatera det som ett XSD-värde för "dayTimeDuration" (en begränsad delmängd av ett ISO 8601-varaktighetsvärde ).

Mönstret för det här värdet är: P(nD)(T(nH)(nM)).

Exempel: PT15M var 15:e minut för PT2H varannan timme.
starttid (valfritt) Ange starttiden i koordinerad universell tid (UTC). Om du utelämnar det här värdet används den aktuella tiden. Den här tiden kan ligga i det förflutna, i vilket fall den första körningen schemaläggs som om indexeraren hade 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

Ange scheman i en indexeraredefinition. Om du vill konfigurera ett schema använder du Azure-portalen, REST-API:er eller en Azure SDKs.

  1. Gå till söktjänsten i Azure-portalen.
  2. I den vänstra rutan 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 antalet sökenheter avgör. Till exempel, om tjänsten har tre repliker och fyra partitioner, kan du ha 12 indexeringsjobb som aktivt körs, 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 påverkar inte antalet tjänstenheter 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 köa och kanske inte starta exakt vid den tidpunkt som publiceras, beroende på bearbetningsarbetsbelastningen och andra faktorer. Om till exempel en indexerare fortfarande körs när nästa schemalagda körning ska starta, skjuts den väntande körningen upp till nästa schemalagda tillfälle, vilket gör att det pågående jobbet kan slutföras.

Tänk på följande exempel för att göra det här beteendet mer konkret. Anta att du konfigurerar ett indexerarschema med ett intervall per timme och en starttid den 1 januari 2024 kl. 08:00:00 UTC. Det här kan inträffa när en indexering tar längre tid ä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 ungefär 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 tiden 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.

I sällsynta fall, till exempel under underhåll eller vid återställning efter övergående tillstånd, köar systemet flera indexeringskörningar. När det här villkoret inträffar kör indexeraren väntande arbetsuppgifter sekventiellt inom det schemalagda fönstret. Om en indexerare till exempel är schemalagd att köras varje timme och flera körningar blev försenade eller utlöstes manuellt, körs dessa köade jobb i direkt följd tills kön är tom. Dessa körningar är inte extra körningar, utan avser tidigare schemalagda eller begärda körningar. Även om det här beteendet är ovanligt i de flesta scenarier är indexeraren utformad för att så småningom bearbeta alla köade uppgifter för att upprätthålla konsekvens och data färskhet.

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 du konfigurerar ett indexeringsprogram att köras enligt ett visst schema, men det upprepade gånger misslyckas med samma dokument varje gång, börjar indexeringsprogrammet köras med längre intervall (upp till det längsta intervallet: minst en gång varannan timme eller var 24:e timme, beroende på olika implementeringsfaktorer) tills det återigen lyckas göra framsteg. Om du tror att du har åtgärdat det underliggande problemet kör du indexeraren manuellt. Om indexeringen lyckas återgår indexeraren till sitt vanliga schema. Om indexeraren inte återgår till sitt vanliga schema efter en lyckad manuell körning, se nästa fråga.

En schemalagd indexerare slutade utlösa. Hur återställer jag schemat?

Om en schemalagd indexerare slutar köras inaktiverar du och återaktiverar den för att återställa schemat. Ett tecken på att den här återställningen behövs: inga nya körningar visas i körningshistoriken trots att schemat har konfigurerats och datakällan har ändrats.

Att ställa in disabled på true pausar schemat. Om du ställer in den på false (eller utelämnar egenskapen) återupptas schemaläggningen med den aktuella tiden som ny baslinje för det konfigurerade intervallet.

  1. Gå till söktjänsten i Azure-portalen.
  2. Välj Indexerare.
  3. Välj indexeraren för att öppna den.
  4. Välj Inställningar.
  5. Ange indexeraren till Inaktiverad.
  6. Välj Spara.
  7. Ange indexeraren tillbaka till Aktiverad.
  8. Välj Spara.
  9. Välj fliken Körningshistorik och kontrollera att en ny körning visas inom nästa schemalagda intervall.

Kommentar

Återaktivering av indexeraren återställer schemat i förhållande till den aktuella tiden, inte den ursprungliga startTime. Om intervallet exempelvis är två timmar och du aktiverar igen klockan 15:15 är nästa schemalagda körning cirka 17:15.

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.