Planowanie indeksatora w usłudze Azure AI Search

Indeksatory można skonfigurować do uruchamiania zgodnie z harmonogramem podczas ustawiania schedule właściwości. Niektóre sytuacje, w których przydatne jest planowanie indeksatora:

  • Dane źródłowe zmieniają się w czasie i chcesz, aby indeksator automatycznie przetwarzał różnicę.
  • Dane źródłowe są bardzo duże i potrzebujesz cyklicznego harmonogramu indeksowania całej zawartości.
  • Indeks jest wypełniany z wielu źródeł przy użyciu wielu indeksatorów i chcesz rozmieścić zadania w celu zmniejszenia konfliktów.

Gdy indeksowanie nie może zakończyć się w typowym 2-godzinnym oknie przetwarzania, można zaplanować działanie indeksatora w ciągu 2-godzinnej, aby pracować z dużą ilością danych. Tak długo, jak źródło danych obsługuje logikę wykrywania zmian, indeksatory mogą automatycznie pobierać miejsca, w których zostały pominięte w każdym przebiegu.

Gdy indeksator jest zgodnie z harmonogramem, pozostaje zgodnie z harmonogramem, dopóki nie wyczyścisz interwału lub godziny rozpoczęcia albo ustawisz wartość disabled true. Pozostawienie indeksatora zgodnie z harmonogramem, gdy nie ma nic do przetworzenia, nie wpłynie to na wydajność systemu. Sprawdzanie, czy zmieniona zawartość jest stosunkowo szybką operacją.

Wymagania wstępne

  • Prawidłowy indeksator skonfigurowany ze źródłem danych i indeksem.

  • Wykrywanie zmian w źródle danych. Usługi Azure Storage i SharePoint mają wbudowane wykrywanie zmian. Inne źródła danych, takie jak Azure SQL i Azure Cosmos DB , muszą być włączone ręcznie.

Definicja harmonogramu

Harmonogram jest częścią definicji indeksatora. schedule Jeśli właściwość zostanie pominięta, indeksator będzie działać tylko na żądanie. Właściwość ma dwie części.

Właściwości opis
"interwał" (wymagane) Czas między rozpoczęciem dwóch kolejnych wykonań indeksatora. Najmniejszy dozwolony interwał wynosi 5 minut, a najdłuższy to 1440 minut (24 godziny). Musi być sformatowana jako wartość XSD "dayTimeDuration" (ograniczony podzestaw wartości czasu trwania ISO 8601).

Wzorzec dla tego elementu to: P(nD)(T(nH)(nM)).

Przykłady: PT15M przez co 15 minut co PT2H dwie godziny.
"startTime" (opcjonalnie) Godzina rozpoczęcia jest określana w uniwersalnym czasie koordynowanym (UTC). W przypadku pominięcia jest używany bieżący czas. Tym razem może to być w przeszłości, w takim przypadku pierwsze wykonanie jest zaplanowane tak, jakby indeksator był uruchomiony w sposób ciągły od oryginalnego czasu rozpoczęcia.

Poniższy przykład to harmonogram rozpoczynający się 1 stycznia o północy i uruchamiany co dwie godziny.

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

Konfigurowanie harmonogramu

Harmonogramy są określone w definicji indeksatora. Aby skonfigurować harmonogram, możesz użyć witryny Azure Portal, interfejsów API REST lub zestawu Azure SDK.

  1. Zaloguj się do witryny Azure Portal i otwórz stronę usługi wyszukiwania.
  2. W okienku nawigacji po lewej stronie wybierz pozycję Indeksatory.
  3. Otwórz indeksator.
  4. Wybierz Ustawienia.
  5. Przewiń w dół do pozycji Harmonogram, a następnie wybierz pozycję Godzinowe, Dzienne lub Niestandardowe, aby ustawić określoną datę, godzinę lub interwał niestandardowy.

Przejdź do karty Definicja indeksatora (JSON) w górnej części indeksu, aby wyświetlić definicję harmonogramu w formacie XSD.

Zachowanie planowania

W przypadku indeksowania opartego na tekście harmonogram może uruchamiać dowolną liczbę zadań indeksatora, które są obsługiwane przez usługę wyszukiwania, która jest określana przez liczbę jednostek wyszukiwania. Jeśli na przykład usługa ma trzy repliki i cztery partycje, możesz mieć 12 zadań indeksatora w aktywnym wykonaniu, niezależnie od tego, czy zainicjowano na żądanie, czy zgodnie z harmonogramem.

Indeksatory oparte na umiejętnościach działają w innym środowisku wykonywania. Z tego powodu liczba jednostek usług nie ma wpływu na liczbę zadań indeksatora opartych na umiejętnościach, które można uruchomić. Wiele indeksatorów opartych na umiejętnościach może działać równolegle, ale zależy to od dostępności węzła w środowisku wykonywania.

Mimo że wiele indeksatorów może działać jednocześnie, dany indeksator jest pojedynczym wystąpieniem. Nie można jednocześnie uruchomić dwóch kopii tego samego indeksatora. Jeśli indeksator nadal działa, gdy jego następne zaplanowane wykonanie zostanie ustawione na uruchomienie, oczekujące wykonanie zostanie odłożone do następnego zaplanowanego wystąpienia, co umożliwi ukończenie bieżącego zadania.

Rozważmy przykład, aby uczynić to bardziej konkretnym. Załóżmy, że konfigurujemy harmonogram indeksatora z interwałem godzinowym i godziną rozpoczęcia 1 stycznia 2024 r. o 8:00:00 czasu UTC. Oto, co może się zdarzyć, gdy uruchomienie indeksatora trwa dłużej niż godzinę:

  • Pierwsze wykonanie indeksatora rozpoczyna się o 1 stycznia 2024 r. o 8:00 czasu UTC. Załóżmy, że wykonanie trwa 20 minut (lub dowolna ilość czasu mniejsza niż 1 godzina).

  • Drugie wykonanie rozpoczyna się o 1 stycznia 2022 r. o 9:00 czasu UTC. Załóżmy, że wykonanie trwa 70 minut — więcej niż godzinę — i nie zostanie ukończone do godziny 10:10 czasu UTC.

  • Trzecie wykonanie jest zaplanowane do rozpoczęcia o 10:00 czasu UTC, ale w tym czasie poprzednie wykonanie jest nadal uruchomione. To zaplanowane wykonanie jest następnie pomijane. Następne wykonanie indeksatora nie rozpocznie się do godziny 11:00 CZASU UTC.

Uwaga

Jeśli indeksator jest ustawiony na określony harmonogram, ale wielokrotnie kończy się niepowodzeniem w tym samym dokumencie za każdym razem, indeksator rozpocznie działanie w krótszym interwale (maksymalnie do maksymalnego interwału co najmniej raz na 2 godziny lub 24 godziny, w zależności od różnych czynników implementacji), dopóki nie zostanie pomyślnie wykonane postęp ponownie. Jeśli uważasz, że rozwiązano problem podstawowy, możesz uruchomić indeksator ręcznie, a jeśli indeksowanie zakończy się pomyślnie, indeksator powróci do regularnego harmonogramu.

Następne kroki

W przypadku indeksatorów uruchamianych zgodnie z harmonogramem można monitorować operacje, pobierając stan z usługi wyszukiwania lub uzyskując szczegółowe informacje, włączając rejestrowanie zasobów.