Planen eines Indexers in Azure AI Search

Indexer können für die Ausführung in einem Zeitplan konfiguriert werden, wenn Sie die schedule Eigenschaft festlegen. Fälle, in denen das Festlegen eines Zeitplans für einen Indexer nützlich ist:

  • Die Quelldaten ändern sich im Lauf der Zeit, und der Suchindexer soll die Unterschiede automatisch verarbeiten.
  • Quelldaten sind sehr groß, und Sie benötigen einen wiederkehrenden Zeitplan, um alle Inhalte indizieren zu können.
  • Ein Index wird aus mehreren Quellen mit mehreren Indexern aufgefüllt, und Sie möchten die Aufträge auflisten, um Konflikte zu reduzieren.

Wenn die Indizierung im typischen 2-Stunden-Verarbeitungsfensternicht abgeschlossen werden kann, können Sie die Ausführung des Indexers für eine 2-Stunden-Zeit planen, um ein großes Datenvolumen zu durchlaufen. Solange Ihre Datenquelle Änderungserkennungslogik unterstützt, können Indexer automatisch an der Stelle aufnehmen, an der sie bei jeder Ausführung aufgehört haben.

Sobald sich ein Indexer in einem Zeitplan befindet, wird er im Zeitplan neu Standard, bis Sie das Intervall oder die Startzeit löschen oder auf "true" festgelegt disabled haben. Das Verlassen des Indexers in einem Zeitplan, wenn nichts verarbeitet werden kann, wirkt sich nicht auf die Systemleistung aus. Die Überprüfung auf geänderte Inhalte ist ein relativ schneller Vorgang.

Voraussetzungen

  • Ein gültiger Indexer, der mit einer Datenquelle und einem Index konfiguriert ist.

  • Änderungserkennung in der Datenquelle. Azure Storage und SharePoint verfügen über eine integrierte Änderungserkennung. Andere Datenquellen wie Azure SQL und Azure Cosmos DB müssen manuell aktiviert werden.

Zeitplandefinition

Ein Zeitplan ist Teil der Indexerdefinition. Wenn die schedule Eigenschaft nicht angegeben wird, wird der Indexer nur bei Bedarf ausgeführt. Die Eigenschaft hat zwei Teile.

Eigenschaft Beschreibung
„interval“ (erforderlich) Die Zeitspanne zwischen dem Start von zwei aufeinanderfolgenden Indexerausführungen. Das kürzeste zulässige Zeitintervall ist 5 Minuten und das längste 1.440 Minuten (24 Stunden). Es muss als XSD-Wert „dayTimeDuration“ formatiert sein (eine eingeschränkte Teilmenge eines ISO 8601-Zeitwerts).

Das Muster dafür ist: P(nD)(T(nH)(nM)).

Beispiele: PT15M = alle 15 Minuten, PT2H = alle 2 Stunden.
„startTime“ (optional) Die Startzeit wird in koordinierter Weltzeit (UTC) angegeben. Wenn kein Wert angegeben wird, wird die aktuelle Uhrzeit verwendet. Diese Zeitangabe kann in der Vergangenheit liegen. In diesem Fall wird die erste Ausführung so geplant, als wäre der Indexer seit der ursprünglichen Startzeit kontinuierlich ausgeführt worden.

Das folgende Beispiel ist ein Zeitplan, der am 1. Januar um Mitternacht beginnt und alle 2 Stunden ausgeführt wird.

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

Konfigurieren eines Zeitplans

Zeitpläne werden in einer Indexerdefinition angegeben. Zum Einrichten eines Zeitplans können Sie Azure-Portal, REST-APIs oder ein Azure SDK verwenden.

  1. Melden Sie sich beim Azure-Portal an, und öffnen Sie die Übersichtsseite des Suchdiensts.
  2. Wählen Sie im linken Navigationsbereich die Option "Indexer" aus.
  3. Öffnen Sie einen Indexer.
  4. Wählen Sie Einstellungen aus.
  5. Scrollen Sie nach unten zu Zeitplan, und wählen Sie Stündlich, Täglich oder Benutzerdefiniert aus, um ein bestimmtes Datum, eine bestimmte Uhrzeit oder ein benutzerdefiniertes Intervall festzulegen.

Wechseln Sie oben im Index zur Registerkarte Indexerdefinition (JSON), um die Zeitplandefinition im XSD-Format anzuzeigen.

Planungsverhalten

Für textbasierte Indizierung kann der Planer so viele Indexeraufträge starten, wie der Suchdienst unterstützt, was durch die Anzahl der Sucheinheiten bestimmt wird. Wenn der Dienst z. B. über drei Replikate und vier Partitionen verfügt, können Sie 12 Indexeraufträge in der aktiven Ausführung haben, unabhängig davon, ob sie bei Bedarf oder nach einem Zeitplan initiiert wurden.

Skill-basierte Indexer werden in einer anderen Ausführungsumgebung ausgeführt. Aus diesem Grund hat die Anzahl der Diensteinheiten keinen Einfluss auf die Anzahl der Skill-basierten Indexeraufträge, die Sie ausführen können. Mehrere Skill-basierte Indexer können parallel ausgeführt werden. Dies hängt jedoch von der Knotenverfügbarkeit innerhalb der Ausführungsumgebung ab.

Obwohl mehrere Indexer gleichzeitig ausgeführt werden können, ist ein jeweiliger Indexer eine einzelne Instanz. Sie können nicht zwei Kopien desselben Indexers gleichzeitig ausführen. Wenn ein Indexer noch ausgeführt wird, während seine nächste geplante Ausführung gestartet wird, wird die anstehende Ausführung auf das nächste geplante Vorkommen verschoben, sodass der aktuelle Auftrag abgeschlossen werden kann.

Betrachten wir ein Beispiel, um dies zu konkreter veranschaulichen. Angenommen, wir konfigurieren einen Indexerplan mit einem Stundenintervall und einer Startzeit vom 1. Januar 2024 um 8:00:00 UHR UTC. Folgendes könnte passieren, wenn eine Indexerausführung länger als eine Stunde dauert:

  • Die erste Indexerausführung beginnt am oder um den 1. Januar 2024 um 8:00 Uhr UTC. Angenommen, diese Ausführung dauert 20 Minuten (oder hat eine andere Dauer unter 1 Stunde).

  • Die zweite Ausführung beginnt um den 1. Januar 2022 um 9:00 Uhr UTC. Angenommen, diese Ausführung dauert 70 Minuten – also mehr als einer Stunde – und wird erst gegen 10:10 Uhr (UTC) abgeschlossen.

  • Der Start der dritten Ausführung ist für 10:00 Uhr (UTC) geplant, aber zu diesem Zeitpunkt ist die vorherige Ausführung noch nicht abgeschlossen. Diese geplante Ausführung wird dann übersprungen. Die nächste Ausführung des Indexers startet somit erst um 11:00 Uhr (UTC).

Hinweis

Wenn ein Indexer auf einen bestimmten Zeitplan festgelegt ist, im gleichen Dokument aber wiederholt ein Fehler auftritt, wird der Indexer in selteneren Intervallen ausgeführt (bis hin zum maximalen Intervall von mindestens einmal in 2 Stunden oder 24 Stunden, abhängig von den verschiedenen Implementierungsfaktoren), bis die Ausführung fehlerfrei verläuft. Wenn Sie denken, dass Sie das zugrunde liegende Problem behoben haben, können Sie den Indexer manuell ausführen. Wenn die Indizierung dann erfolgreich ausgeführt wird, wird der Indexer auf den regulären Zeitplan zurückgesetzt.

Nächste Schritte

Für Indexer, die nach einem Zeitplan ausgeführt werden, können Sie Vorgänge überwachen, indem Sie den Status des Suchdiensts abrufen, oder detaillierte Informationen abfragen, indem Sie die Ressourcenprotokollierung aktivieren.