Een indexeerfunctie plannen in Azure AI Zoeken

Notitie

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

Stel de schedule eigenschap in om indexeerfuncties te configureren die volgens een schema moeten worden uitgevoerd. Het plannen van indexeerfuncties is handig in situaties zoals:

  • Brongegevens veranderen in de loop van de tijd en u wilt dat de indexer de wijzigingen automatisch verwerkt.
  • Brongegevens zijn erg groot en u hebt een terugkerend schema nodig om alle inhoud te indexeren.
  • Een index wordt gevuld vanuit meerdere bronnen met behulp van meerdere indexeerders, en u wilt de taken gespreid uitvoeren om conflicten te beperken.

Wanneer het indexeren niet kan worden voltooid binnen het normale verwerkingsvenster van 2 uur, plant u de indexeerfunctie die wordt uitgevoerd op een frequentie van 2 uur om een grote hoeveelheid gegevens te doorlopen. Zolang uw gegevensbron ondersteuning biedt voor wijzigingsdetectielogica, kunnen indexeerfuncties automatisch ophalen waar ze bij elke uitvoering zijn gebleven.

Zodra u een indexeerfunctie hebt gepland, blijft deze ingepland totdat u het interval of de starttijd wist, of disabled op waar instelt. Als een geplande indexeerfunctie onverwacht stopt met activeren, raadpleegt u veelgestelde vragen over planningsgedrag voor herstelstappen. Als u de indexeerfunctie volgens een schema laat staan wanneer er niets te verwerken is, heeft dit geen invloed op de systeemprestaties. Controleren op gewijzigde inhoud is een relatief snelle bewerking.

Vereisten

  • Een geldige indexeerfunctie die is geconfigureerd met een gegevensbron en index.

  • Wijzigingsdetectie in de gegevensbron. Azure Storage en SharePoint hebben ingebouwde wijzigingsdetectie. Voor andere gegevensbronnen, zoals Azure SQL en Azure Cosmos DB, moet u wijzigingsdetectie handmatig inschakelen.

Definitie van planning

Een schema maakt deel uit van de definitie van de indexeerfunctie. Als u de schedule eigenschap weglaat, wordt de indexeerfunctie alleen op aanvraag uitgevoerd. Het kenmerk heeft twee delen.

Eigenschap Beschrijving
"interval" (vereist) De hoeveelheid tijd tussen het begin van twee opeenvolgende uitvoeringen van de indexeerfunctie. Het kleinste toegestane interval is 5 minuten en het langste is 1440 minuten (24 uur). Maak deze op als een XSD dayTimeDuration-waarde (een beperkte subset van een ISO 8601-duurwaarde ).

Het patroon voor deze waarde is: P(nD)(T(nH)(nM)).

Voorbeelden: PT15M voor elke 15 minuten, PT2H voor elke twee uur.
starttijd (optioneel) Geef de begintijd op in gecoördineerde universele tijd (UTC). Als u deze waarde weglaat, wordt de huidige tijd gebruikt. Deze tijd kan in het verleden zijn, in welk geval de eerste uitvoering wordt gepland alsof de indexeerfunctie continu sinds de oorspronkelijke begintijd wordt uitgevoerd.

Het volgende voorbeeld is een schema dat begint op 1 januari om middernacht en om de twee uur wordt uitgevoerd.

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

Een planning configureren

Geef schema's op in een indexeerfunctiedefinitie. Als u een planning wilt instellen, gebruikt u de Azure-portal, REST API's of een Azure SDK.

  1. Ga naar uw zoekservice in Azure Portal.
  2. Selecteer Indexeerfuncties in het linkerdeelvenster.
  3. Open een indexeerfunctie.
  4. Selecteer Instellingen.
  5. Schuif omlaag naar Planning en kies vervolgens Elk uur, Dagelijks of Aangepast om een specifieke datum, tijd of aangepast interval in te stellen.

Ga naar het tabblad Indexeerfunctiedefinitie (JSON) boven aan de index om de planningsdefinitie in XSD-indeling weer te geven.

Veelgestelde vragen over planningsgedrag

Kan ik meerdere indexeerfuncties parallel uitvoeren?

U kunt meerdere indexeerfuncties tegelijk uitvoeren, maar elke indexeerfunctie is één exemplaar. U kunt niet tegelijkertijd twee exemplaren van dezelfde indexeerfunctie uitvoeren.

Voor indexering op basis van tekst kan de planner zoveel indexeertaken starten als de zoekservice ondersteunt, wat het aantal zoekeenheden bepaalt. Als de service bijvoorbeeld drie replica's en vier partities heeft, kunt u 12 indexeertaken in actieve uitvoering hebben, ongeacht of deze op aanvraag of volgens een schema worden gestart.

Voor indexering op basis van vaardigheden worden indexeerfuncties uitgevoerd in een specifieke uitvoeringsomgeving. Daarom heeft het aantal service-eenheden geen invloed op het aantal op vaardigheden gebaseerde indexeertaken die u kunt uitvoeren. Indexeerfuncties op basis van meerdere vaardigheden kunnen parallel worden uitgevoerd, maar dit hangt af van de beschikbaarheid van de inhoudsprocessor in de uitvoeringsomgeving.

Beginnen geplande taken altijd op het aangewezen tijdstip?

Indexeerprocessen kunnen in de wachtrij worden geplaatst en kunnen mogelijk niet exact worden gestart op het moment dat wordt gepost, afhankelijk van de verwerkingsworkload en andere factoren. Als een indexeerfunctie bijvoorbeeld nog steeds wordt uitgevoerd wanneer de volgende geplande uitvoering is ingesteld op starten, wordt de uitvoering in behandeling uitgesteld tot de volgende geplande gebeurtenis, waardoor de huidige taak kan worden voltooid.

Bekijk het volgende voorbeeld om dit gedrag concreter te maken. Stel dat u een indexeerschema configureert met een interval van elk uur en een begintijd van 1 januari 2024 om 8:00:00 uur UTC. Dit kan er gebeuren als een indexeerproces langer dan een uur duurt:

  1. De eerste uitvoering van de indexeerfunctie begint op of rond 1 januari 2024 om 8:00 uur UTC. Stel dat deze uitvoering 20 minuten duurt (of enige tijd die minder dan 1 uur is).

  2. De tweede uitvoering begint op of rond 1 januari 2024 9:00 UUR UTC. Stel dat deze uitvoering 70 minuten duurt ( meer dan een uur ) en dat deze niet is voltooid tot 10:10 uur UTC.

  3. De derde uitvoering wordt gepland om 10:00 uur UTC te beginnen, maar op dat moment wordt de vorige uitvoering nog steeds uitgevoerd. Deze geplande uitvoering wordt vervolgens overgeslagen. De volgende uitvoering van de indexeerfunctie begint pas om 11:00 uur UTC.

In zeldzame gevallen, zoals tijdens onderhoud of bij herstel na tijdelijke storingen, plaatst het systeem meerdere indexeeruitvoeringen in de wachtrij. Wanneer deze voorwaarde zich voordoet, voert de indexeerder de workloads die in behandeling zijn na elkaar uit binnen het geplande tijdvenster. Als een indexeerfunctie bijvoorbeeld zo is gepland dat deze elk uur wordt uitgevoerd en meerdere uitvoeringen zijn vertraagd of op aanvraag zijn geactiveerd, worden de taken in de wachtrij direct na elkaar uitgevoerd totdat de wachtrij leeg is. Deze uitvoeringen zijn geen extra uitvoeringen, maar vertegenwoordigen eerder geplande of aangevraagde uitvoeringen. Hoewel dit gedrag ongebruikelijk is in de meeste scenario's, is de indexeerfunctie ontworpen om uiteindelijk alle taken in de wachtrij te verwerken om consistentie en versheid van gegevens te behouden.

Notitie

Als u strikte uitvoeringsvereisten voor de indexeerfunctie hebt die tijdgevoelig zijn, kunt u overwegen het push-API-model te gebruiken, zodat u de indexeringspijplijn rechtstreeks kunt beheren.

Wat gebeurt er als indexering herhaaldelijk op hetzelfde document mislukt?

Als u een indexeerfunctie instelt op een bepaald schema, maar deze telkens vastloopt op hetzelfde document, wordt de indexeerfunctie met langere tussenpozen uitgevoerd (tot maximaal eens per 2 uur of eens per 24 uur, afhankelijk van verschillende implementatiefactoren) totdat deze weer succesvol voortgang boekt. Als u denkt dat u het onderliggende probleem hebt opgelost, voert u de indexeerfunctie handmatig uit. Als het indexeren slaagt, keert de indexeerfunctie terug naar de normale planning. Als de indexeerfunctie na een geslaagde handmatige uitvoering niet terugkeert naar de normale planning, raadpleegt u de volgende vraag.

Een geplande indexer wordt niet meer geactiveerd. Hoe stel ik de planning opnieuw in?

Als een geplande indexeerfunctie niet meer actief is, schakelt u deze uit en schakelt u deze opnieuw in om de planning opnieuw in te stellen. Een teken dat dit herstel nodig is: er worden geen nieuwe uitvoeringen weergegeven in de uitvoeringsgeschiedenis, zelfs als de planning is geconfigureerd en de gegevensbron is gewijzigd.

Het instellen van disabled op true schort de planning op. Als u de eigenschap weer false instelt op (of de eigenschap weglaat), wordt de planning hervat met behulp van de huidige tijd als de nieuwe basislijn voor het geconfigureerde interval.

  1. Ga naar uw zoekservice in Azure Portal.
  2. Selecteer Indexeerders.
  3. Selecteer de indexeerfunctie om deze te openen.
  4. Selecteer Instellingen.
  5. Stel de indexeerfunctie in op Uitgeschakeld.
  6. Kies Opslaan.
  7. Stel de indexeerfunctie weer in op Ingeschakeld.
  8. Kies Opslaan.
  9. Selecteer het tabblad Uitvoeringsgeschiedenis en controleer of er binnen het volgende geplande interval een nieuwe uitvoering wordt weergegeven.

Notitie

Als u de indexeerfunctie opnieuw inschakelt, wordt het schema ten opzichte van de huidige tijd opnieuw ingesteld, niet de oorspronkelijke startTime. Als het interval bijvoorbeeld op twee uur is ingesteld en u dit om 15:15 uur opnieuw inschakelt, vindt de volgende geplande uitvoering omstreeks 17:15 uur plaats.

Volgende stappen

Voor indexeerfuncties die volgens een schema worden uitgevoerd, kunt u bewerkingen bewaken door de status op te halen uit de zoekservice of gedetailleerde informatie te krijgen door resourcelogboekregistratie in te schakelen.