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.
- Zaloguj się do witryny Azure Portal i otwórz stronę usługi wyszukiwania.
- W okienku nawigacji po lewej stronie wybierz pozycję Indeksatory.
- Otwórz indeksator.
- Wybierz Ustawienia.
- 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 harmonogramu — często zadawane pytania
Czy można uruchamiać wiele zadań indeksatora równolegle?
Można uruchomić wiele indeksatorów jednocześnie, ale każdy indeksator jest pojedynczym wystąpieniem. Nie można jednocześnie uruchomić dwóch kopii tego samego indeksatora.
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.
W przypadku indeksowania opartego na umiejętnościach indeksatory są uruchamiane w określonym ś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 procesora zawartości w środowisku wykonywania.
Czy zaplanowane zadania są zawsze uruchamiane w wyznaczonym czasie?
Procesy indeksatora mogą być umieszczane w kolejce i mogą nie być uruchamiane dokładnie w momencie zaksięgowania, w zależności od obciążenia przetwarzania i innych czynników. Jeśli na przykład indeksator nadal działa, gdy jego następne zaplanowane wykonanie ma zostać uruchomione, 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 lub około 1 stycznia 2024 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 masz ścisłe wymagania dotyczące wykonywania indeksatora, które są wrażliwe na czas, rozważ użycie modelu interfejsu API wypychania, aby można było bezpośrednio kontrolować potok indeksowania.
Co się stanie, jeśli indeksowanie wielokrotnie kończy się niepowodzeniem w tym samym dokumencie?
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 podstawowy problem, możesz uruchomić indeksator ręcznie, a jeśli indeksowanie powiedzie się, 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.