Delen via


Een indexeerfunctie plannen in Azure AI Search

Indexeerfuncties kunnen worden geconfigureerd voor uitvoering volgens een schema wanneer u de schedule eigenschap instelt. Enkele situaties waarin het plannen van indexeerfuncties nuttig is, zijn onder andere:

  • Brongegevens worden na verloop van tijd gewijzigd en u wilt dat de indexeerfunctie het verschil 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 indexeerfuncties en u wilt de taken verspringen om conflicten te verminderen.

Wanneer indexering niet kan worden voltooid binnen het normale verwerkingsvenster van 2 uur, kunt u plannen dat de indexeerfunctie 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 een indexeerfunctie volgens een schema staat, blijft deze in de planning staan totdat u het interval of de begintijd wist of op waar hebt ingesteld disabled . Het laten van de indexeerfunctie volgens een schema wanneer er niets te verwerken is, heeft 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. Andere gegevensbronnen, zoals Azure SQL en Azure Cosmos DB , moeten handmatig worden ingeschakeld.

Planningsdefinitie

Een schema maakt deel uit van de definitie van de indexeerfunctie. Als de schedule eigenschap wordt weggelaten, wordt de indexeerfunctie alleen op aanvraag uitgevoerd. De eigenschap heeft twee delen.

Eigenschappen 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). Deze moet worden opgemaakt als een XSD-waarde 'dayTimeDuration' (een beperkte subset van een ISO 8601-duurwaarde ).

Het patroon hiervoor is: P(nD)(T(nH)(nM)).

Voorbeelden: PT15M voor elke 15 minuten, PT2H voor elke twee uur.
"startTime" (optioneel) Begintijd wordt opgegeven in gecoördineerde universele tijd (UTC). Als u dit 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

Schema's worden opgegeven in een indexeerfunctiedefinitie. Als u een planning wilt instellen, kunt u Azure Portal, REST API's of een Azure SDK gebruiken.

  1. Meld u aan bij Azure Portal en open de zoekservicepagina.
  2. Selecteer Indexeerfuncties in het linkernavigatiedeelvenster.
  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. Dit wordt bepaald door het aantal zoekeenheden. 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 ze zijn 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, zodat de huidige taak kan worden voltooid.

Laten we eens kijken naar een voorbeeld om dit concreter te maken. Stel dat we een indexeerschema configureren met een interval van elk uur en een begintijd van 1 januari 2024 om 8:00:00 uur UTC. Dit kan gebeuren wanneer een indexeerfunctie langer duurt dan een uur:

  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 pas 10:10 uur UTC wordt voltooid.

  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.

Notitie

Als u strikte uitvoeringsvereisten voor de indexeerfunctie hebt die tijdgevoelig zijn, moet 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 een indexeerfunctie is ingesteld op een bepaald schema, maar telkens opnieuw mislukt op hetzelfde document, wordt de indexeerfunctie uitgevoerd op een minder frequent interval (tot het maximuminterval van ten minste één keer per 2 uur of 24 uur, afhankelijk van verschillende implementatiefactoren) totdat de voortgang opnieuw wordt gemaakt. Als u denkt dat u het onderliggende probleem hebt opgelost, kunt u de indexeerfunctie handmatig uitvoeren en als indexering slaagt, keert de indexeerfunctie terug naar de normale planning.

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 verkrijgen door resourcelogboekregistratie in te schakelen.