Rozwiązywanie typowych błędów indeksatora i ostrzeżeń w usłudze Azure AI Search

Ten artykuł zawiera informacje i rozwiązania typowych błędów i ostrzeżeń, które mogą wystąpić podczas indeksowania i wzbogacania sztucznej inteligencji w usłudze Azure AI Search.

Indeksowanie zatrzymuje się, gdy liczba błędów przekracza wartość "maxFailedItems".

Jeśli chcesz, aby indeksatory ignorowały te błędy (i pomijały "dokumenty w trybie failed"), rozważ zaktualizowanie elementu maxFailedItems i maxFailedItemsPerBatch zgodnie z opisem w tym miejscu.

Uwaga

Każdy dokument, który zakończył się niepowodzeniem wraz z kluczem dokumentu (jeśli jest dostępny), będzie wyświetlany jako błąd w stanie wykonywania indeksatora. Możesz użyć interfejsu API indeksu, aby ręcznie przekazać dokumenty w późniejszym momencie, jeśli indeksator ma tolerować błędy.

Informacje o błędach w tym artykule mogą pomóc w usuwaniu błędów, co pozwala na kontynuowanie indeksowania.

Ostrzeżenia nie przestają indeksować, ale wskazują warunki, które mogą spowodować nieoczekiwane wyniki. Niezależnie od tego, czy podejmujesz działania, czy nie, zależy od danych i scenariusza.

Gdzie można znaleźć określone błędy indeksatora?

Aby sprawdzić stan indeksatora i zidentyfikować błędy w witrynie Azure Portal, wykonaj poniższe kroki:

  1. Przejdź do witryny Azure Portal i znajdź usługa wyszukiwania sztucznej inteligencji.
  2. Po przejściu do usługa wyszukiwania sztucznej inteligencji kliknij kartę "Indeksatory".
  3. Z listy indeksatorów zidentyfikuj konkretny indeksator, który chcesz zweryfikować.
  4. W kolumnie "Historia wykonywania" kliknij hiperlink "Stan" skojarzony z wybranym indeksatorem.
  5. Jeśli wystąpi błąd, zatrzymaj wskaźnik myszy na komunikacie o błędzie. Po prawej stronie ekranu zostanie wyświetlone okienko zawierające szczegółowe informacje o błędzie.

Błędy przejściowe

Z różnych powodów, takich jak przejściowe przerwy w komunikacji sieciowej, przekroczenia limitu czasu z długotrwałych procesów lub określone niuanse dokumentów, często występują przejściowe błędy lub ostrzeżenia podczas przebiegów indeksatora. Te błędy są jednak tymczasowe i powinny zostać rozwiązane w kolejnych uruchomieniach indeksatora.

Aby skutecznie zarządzać tymi błędami, zaleca się umieszczenie indeksatora zgodnie z harmonogramem, na przykład co pięć minut. Oznacza to, że następny przebieg rozpocznie się pięć minut po zakończeniu pierwszego przebiegu, przestrzegając maksymalnego limitu czasu wykonywania. Regularne zaplanowane przebiegi ułatwiają szybkie naprawianie błędów przejściowych lub ostrzeżeń.

Jeśli zauważysz błąd utrzymujący się w wielu uruchomieniach indeksatora, prawdopodobnie nie jest to problem przejściowy. W takich przypadkach zapoznaj się z poniższą listą potencjalnych rozwiązań. Pamiętaj, że zawsze upewnij się, że harmonogram indeksowania jest zgodny z ograniczeniami opisanymi w naszym przewodniku dotyczącym limitów indeksatora.

Właściwości błędu

Począwszy od wersji 2019-05-06interfejsu API, błędy indeksatora na poziomie elementu i ostrzeżenia są ustrukturyzowane w celu zapewnienia większej jasności wokół przyczyn i następnych kroków. Zawierają one następujące właściwości:

Właściwości opis Przykład
Klucz Identyfikator dokumentu, na który ma wpływ błąd lub ostrzeżenie. https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf
Nazwisko Nazwa operacji opisująca miejsce wystąpienia błędu lub ostrzeżenia. Jest to generowane przez następującą strukturę: [category].[subcategory]..[resourceType][resourceName] DocumentExtraction.azureblob.myBlobContainerName Enrichment.WebApiSkill.mySkillName Projection.SearchIndex.OutputFieldMapping.myOutputFieldName Projection.SearchIndex.MergeOrUpload.myIndexName Projection.KnowledgeStore.Table.myTableName
Komunikat Ogólny opis błędu lub ostrzeżenia. Could not execute skill because the Web Api request failed.
Szczegóły Konkretne informacje, które mogą być przydatne podczas diagnozowania problemu, takie jak odpowiedź interfejsu WebApi, jeśli wykonanie niestandardowej umiejętności nie powiodło się. link-cryptonyms-list - Error processing the request record : System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Linq.Enumerable.All[TSource](IEnumerable 1 source, Func 2 predicate) at Microsoft.CognitiveSearch.WebApiSkills.JfkWebApiSkills. ...rest of stack trace...
Link do dokumentacji Link do odpowiedniej dokumentacji ze szczegółowymi informacjami dotyczącymi debugowania i rozwiązywania problemu. Ten link często wskazuje jedną z poniższych sekcji na tej stronie. https://go.microsoft.com/fwlink/?linkid=2106475

Error: Could not read document

Indeksator nie mógł odczytać dokumentu ze źródła danych. Taką sytuację może powodować:

Przyczyna Szczegóły/przykład Rozwiązanie
Niespójne typy pól w różnych dokumentach Type of value has a mismatch with column type. Couldn't store '{47.6,-122.1}' in authors column. Expected type is JArray. Error converting data type nvarchar to float. Conversion failed when converting the nvarchar value '12 months' to data type int. Arithmetic overflow error converting expression to data type int. Upewnij się, że typ każdego pola jest taki sam w różnych dokumentach. Jeśli na przykład pierwsze pole dokumentu 'startTime' jest polem DateTime, a w drugim dokumencie jest to ciąg, ten błąd zostanie trafiony.
Błędy z usługi bazowej źródła danych Z usługi Azure Cosmos DB: {"Errors":["Request rate is large"]} Sprawdź wystąpienie magazynu, aby upewnić się, że jest ono w dobrej kondycji. Może być konieczne dostosowanie skalowania lub partycjonowania.
Przejściowe problemy A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host Czasami występują nieoczekiwane problemy z łącznością. Spróbuj ponownie uruchomić dokument za pośrednictwem indeksatora później.

Error: Could not extract content or metadata from your document

Indeksator ze źródłem danych obiektu blob nie mógł wyodrębnić zawartości lub metadanych z dokumentu (na przykład pliku PDF). Taką sytuację może powodować:

Przyczyna Szczegóły/przykład Rozwiązanie
Obiekt blob przekracza limit rozmiaru Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. Błędy indeksowania obiektów blob
Obiekt blob ma nieobsługiwany typ zawartości Document has unsupported content type 'image/png' Błędy indeksowania obiektów blob
Obiekt blob jest szyfrowany Document could not be processed - it may be encrypted or password protected. Obiekt blob można pominąć przy użyciu ustawień obiektu blob.
Przejściowe problemy Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. Czasami występują nieoczekiwane problemy z łącznością. Spróbuj ponownie uruchomić dokument za pośrednictwem indeksatora później.

Error: Could not parse document

Indeksator odczytuje dokument ze źródła danych, ale wystąpił problem podczas konwertowania zawartości dokumentu na określony schemat mapowania pól. Taką sytuację może powodować:

Przyczyna Szczegóły/przykład Rozwiązanie
Brak klucza dokumentu Document key cannot be missing or empty Upewnij się, że wszystkie dokumenty mają prawidłowe klucze dokumentów. Klucz dokumentu jest określany przez ustawienie właściwości "klucz" w ramach definicji indeksu. Indeksatory emitują ten błąd, gdy właściwość oznaczona jako "klucz" nie może być znaleziona w określonym dokumencie.
Klucz dokumentu jest nieprawidłowy Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). Upewnij się, że wszystkie dokumenty mają prawidłowe klucze dokumentów. Aby uzyskać więcej informacji, zobacz Indeksowanie usługi Blob Storage . Jeśli używasz indeksatora obiektów blob, a kluczem dokumentu jest metadata_storage_path pole, upewnij się, że definicja indeksatora ma funkcję mapowania base64Encode o parameters wartości równej null, zamiast ścieżki w postaci zwykłego tekstu.
Klucz dokumentu jest nieprawidłowy Document key cannot be longer than 1024 characters Zmodyfikuj klucz dokumentu, aby spełnić wymagania dotyczące walidacji.
Nie można zastosować mapowania pól do pola Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes Dokładnie sprawdź mapowania pól zdefiniowane na indeksatorze i porównaj je z danymi określonego pola dokumentu, które zakończyło się niepowodzeniem. Może być konieczne zmodyfikowanie mapowań pól lub danych dokumentu.
Nie można odczytać wartości pola Could not read the value of column 'fieldName' at index 'fieldIndex'. A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) Te błędy są zwykle spowodowane nieoczekiwanymi problemami z łącznością z podstawową usługą źródła danych. Spróbuj ponownie uruchomić dokument za pośrednictwem indeksatora później.

Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'

Mapowanie danych wyjściowych mogło zakończyć się niepowodzeniem, ponieważ dane wyjściowe są w niewłaściwym formacie dla używanej funkcji mapowania. Na przykład zastosowanie Base64Encode funkcji mapowania na danych binarnych spowoduje wygenerowanie tego błędu. Aby rozwiązać ten problem, należy ponownie uruchomić indeksator bez określania funkcji mapowania lub upewnić się, że funkcja mapowania jest zgodna z typem danych pola wyjściowego. Aby uzyskać szczegółowe informacje, zobacz Mapowanie pól wyjściowych.

Error: Could not execute skill

Indeksator nie był w stanie uruchomić umiejętności w zestawie umiejętności.

Przyczyna Szczegóły/przykład Rozwiązanie
Przejściowe problemy z łącznością Wystąpił błąd przejściowy. Spróbuj ponownie później. Czasami występują nieoczekiwane problemy z łącznością. Spróbuj ponownie uruchomić dokument za pośrednictwem indeksatora później.
Potencjalna usterka produktu Wystąpił nieoczekiwany błąd. Wskazuje to nieznaną klasę awarii i może wskazywać usterkę produktu. Utwórz bilet pomocy technicznej, aby uzyskać pomoc.
Podczas wykonywania wystąpił błąd umiejętności (Z poziomu umiejętności scalania) Co najmniej jedna wartość przesunięcia była nieprawidłowa i nie można jej przeanalizować. Elementy zostały wstawione na końcu tekstu Użyj informacji w komunikacie o błędzie, aby rozwiązać problem. Ten rodzaj błędu wymaga rozwiązania akcji.

Error: Could not execute skill because the Web API request failed

Wykonanie umiejętności nie powiodło się, ponieważ wywołanie internetowego interfejsu API nie powiodło się. Zazwyczaj ta klasa niepowodzeń występuje, gdy są używane umiejętności niestandardowe, w takim przypadku musisz debugować kod niestandardowy, aby rozwiązać ten problem. Jeśli zamiast tego błąd pochodzi z wbudowanej umiejętności, zapoznaj się z komunikatem o błędzie, aby uzyskać pomoc dotyczącą rozwiązywania problemu.

Podczas debugowania tego problemu pamiętaj, aby zwrócić uwagę na wszelkie ostrzeżenia dotyczące wprowadzania umiejętności dla tej umiejętności. Punkt końcowy internetowego interfejsu API może zakończyć się niepowodzeniem, ponieważ indeksator przekazuje nieoczekiwane dane wejściowe.

Error: Could not execute skill because Web API skill response is invalid

Wykonanie umiejętności nie powiodło się, ponieważ wywołanie internetowego interfejsu API zwróciło nieprawidłową odpowiedź. Zazwyczaj ta klasa niepowodzeń występuje, gdy są używane umiejętności niestandardowe, w takim przypadku musisz debugować kod niestandardowy, aby rozwiązać ten problem. Jeśli zamiast tego awaria pochodzi z wbudowanej umiejętności, utwórz bilet pomocy technicznej, aby uzyskać pomoc.

Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'

Jeśli źródło danych ma pole o innym typie danych niż pole, które próbujesz mapować w indeksie, może wystąpić ten błąd. Sprawdź typy danych pól źródła danych i upewnij się, że są one poprawnie mapowane na typy danych indeksu.

Error: Skill did not execute within the time limit

Istnieją dwa przypadki, w których może wystąpić ten komunikat o błędzie, z których każdy powinien być traktowany inaczej. Postępuj zgodnie z poniższymi instrukcjami w zależności od tego, jakie umiejętności zwróciły ten błąd.

Wbudowane umiejętności w zakresie usług sztucznej inteligencji platformy Azure

Wiele wbudowanych umiejętności poznawczych, takich jak wykrywanie języka, rozpoznawanie jednostek lub OCR, jest wspieranych przez punkt końcowy interfejsu API usług Azure AI. Czasami występują przejściowe problemy z tymi punktami końcowymi i upłynął limit czasu żądania. W przypadku przejściowych problemów nie ma żadnego rozwiązania, z wyjątkiem oczekiwania i spróbuj ponownie. Jako środki zaradcze rozważ ustawienie indeksatora, aby był uruchamiany zgodnie z harmonogramem. Zaplanowane indeksowanie pobiera miejsce, w którym została przerwana. Zakładając, że problemy przejściowe są rozwiązywane, indeksowanie i przetwarzanie umiejętności poznawczych powinno być w stanie kontynuować w następnym zaplanowanym przebiegu.

Jeśli ten błąd będzie nadal wyświetlany w tym samym dokumencie dla wbudowanej umiejętności poznawczej, utwórz bilet pomocy technicznej, aby uzyskać pomoc, ponieważ nie jest to oczekiwane.

Umiejętności niestandardowe

Jeśli wystąpi błąd przekroczenia limitu czasu z niestandardową umiejętnością, możesz wypróbować kilka rzeczy. Najpierw przejrzyj swoje umiejętności niestandardowe i upewnij się, że nie utknie w nieskończonej pętli i że stale zwraca wynik. Po potwierdzeniu, że zostanie zwrócony wynik, sprawdź czas trwania wykonywania. Jeśli nie ustawiono jawnie wartości w niestandardowej timeout definicji umiejętności, wartość domyślna timeout to 30 sekund. Jeśli 30 sekund nie jest wystarczająco długie, aby wykonać umiejętności, możesz określić wyższą timeout wartość w niestandardowej definicji umiejętności. Oto przykład niestandardowej definicji umiejętności, w której limit czasu jest ustawiony na 90 sekund:

  {
        "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
        "uri": "<your custom skill uri>",
        "batchSize": 1,
        "timeout": "PT90S",
        "context": "/document",
        "inputs": [
          {
            "name": "input",
            "source": "/document/content"
          }
        ],
        "outputs": [
          {
            "name": "output",
            "targetName": "output"
          }
        ]
      }

Maksymalna wartość, którą można ustawić dla parametru timeout , wynosi 230 sekund. Jeśli niestandardowa umiejętność nie jest w stanie wykonać spójnie w ciągu 230 sekund, możesz rozważyć zmniejszenie batchSize niestandardowej umiejętności, aby mieć mniej dokumentów do przetworzenia w ramach jednego wykonania. Jeśli ustawiono batchSize już wartość 1, musisz przepisać umiejętności, aby móc wykonać je w ciągu poniżej 230 sekund lub w inny sposób podzielić go na wiele umiejętności niestandardowych, aby czas wykonywania dowolnej umiejętności niestandardowej był maksymalnie 230 sekund. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą umiejętności niestandardowych.

Error: Could not 'MergeOrUpload' | 'Delete' document to the search index

Dokument został odczytany i przetworzony, ale indeksator nie mógł dodać go do indeksu wyszukiwania. Taką sytuację może powodować:

Przyczyna Szczegóły/przykład Rozwiązanie
Pole zawiera termin, który jest zbyt duży Termin w dokumencie jest większy niż limit 32 KB To ograniczenie można uniknąć, upewniając się, że pole nie jest skonfigurowane jako możliwe do filtrowania, tworzenie aspektów ani sortowanie.
Indeksowanie dokumentu jest zbyt duże Dokument jest większy niż maksymalny rozmiar żądania interfejsu API Jak indeksować duże zestawy danych
Dokument zawiera zbyt wiele obiektów w kolekcji Kolekcja w dokumencie przekracza maksymalny limit wszystkich złożonych kolekcji. The document with key '1000052' has '4303' objects in collections (JSON arrays). At most '3000' objects are allowed to be in collections across the entire document. Remove objects from collections and try indexing the document again. Zalecamy zmniejszenie rozmiaru złożonej kolekcji w dokumencie w celu zmniejszenia limitu i uniknięcia wysokiego wykorzystania magazynu.
Problemy z nawiązywaniem połączenia z indeksem docelowym (który jest utrwalany po ponownych próbach), ponieważ usługa jest pod innym obciążeniem, takim jak wykonywanie zapytań lub indeksowanie. Nie można ustanowić połączenia w celu zaktualizowania indeksu. usługa wyszukiwania jest obciążona dużym obciążeniem. Skalowanie w górę usługi wyszukiwania
usługa wyszukiwania jest poprawiana dla aktualizacji usługi lub znajduje się w środku rekonfiguracji topologii. Nie można ustanowić połączenia w celu zaktualizowania indeksu. usługa wyszukiwania jest obecnie w dół/usługa wyszukiwania przechodzi przejście. Konfigurowanie usługi z co najmniej trzema replikami pod kątem dostępności 99,9% na dokumentację umowy SLA
Błąd w bazowym zasobie obliczeniowym/sieciowym (rzadko) Nie można ustanowić połączenia w celu zaktualizowania indeksu. Wystąpił nieznany błąd. Skonfiguruj indeksatory do uruchamiania zgodnie z harmonogramem w celu pobrania ze stanu niepowodzenia.
Żądanie indeksowania skierowane do indeksu docelowego nie zostało potwierdzone w okresie przekroczenia limitu czasu z powodu problemów z siecią. Nie można nawiązać połączenia z indeksem wyszukiwania w odpowiednim czasie. Skonfiguruj indeksatory do uruchamiania zgodnie z harmonogramem w celu pobrania ze stanu niepowodzenia. Ponadto spróbuj zmniejszyć rozmiar partii indeksatora, jeśli ten warunek błędu będzie się powtarzać.

Error: Could not index document because some of the document's data was not valid

Dokument został odczytany i przetworzony przez indeksator, ale z powodu niezgodności w konfiguracji pól indeksu i danych wyodrębnionych i przetworzonych przez indeksator nie można go dodać do indeksu wyszukiwania. Taką sytuację może powodować:

Przyczyna Szczegóły/przykład
Typ danych jednego lub większej liczby pól wyodrębnionych przez indeksator jest niezgodny z modelem danych odpowiedniego pola indeksu docelowego. The data field '_data_' in the document with key '888' has an invalid value 'of type 'Edm.String''. The expected type was 'Collection(Edm.String)'.
Nie można wyodrębnić żadnej jednostki JSON z wartości ciągu. Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON object. Error:'After parsing a value an unexpected character was encountered: ''. Path '_path_', line 1, position 3162.'
Nie można wyodrębnić kolekcji jednostek JSON z wartości ciągu. Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON array. Error:'After parsing a value an unexpected character was encountered: ''. Path '[0]', line 1, position 27.'
W dokumencie źródłowym odnaleziono nieznany typ. Unknown type '_unknown_' cannot be indexed
Niezgodna notacja punktów geograficznych została użyta w dokumencie źródłowym. WKT POINT string literals are not supported. Use GeoJson point literals instead

We wszystkich tych przypadkach zapoznaj się z tematem Obsługiwane typy danych i mapa typu danych dla indeksatorów , aby upewnić się, że schemat indeksu został poprawnie skompilowywany i skonfigurował odpowiednie mapowania pól indeksatora. Komunikat o błędzie zawiera szczegółowe informacje, które mogą pomóc w śledzeniu źródła niezgodności.

Error: Integrated change tracking policy cannot be used because table has a composite primary key

Dotyczy to tabel SQL i zwykle występuje, gdy klucz jest zdefiniowany jako klucz złożony lub gdy tabela zdefiniowała unikatowy indeks klastrowany (jak w indeksie SQL, a nie indeksie usługi Azure Search). Głównym powodem jest modyfikacja atrybutu klucza jako złożonego klucza podstawowego w unikatowym indeksie klastrowanym. W takim przypadku upewnij się, że tabela SQL nie ma unikatowego indeksu klastrowanego lub mapujesz pole klucza na pole, które nie ma zduplikowanych wartości.

Error: Could not process document within indexer max run time

Ten błąd występuje, gdy indeksator nie może zakończyć przetwarzania pojedynczego dokumentu ze źródła danych w dozwolonym czasie wykonywania. Maksymalny czas wykonywania jest krótszy, gdy używane są zestawy umiejętności. Jeśli wystąpi ten błąd, jeśli parametr maxFailedItems jest ustawiony na wartość inną niż 0, indeksator pomija dokument w przyszłych uruchomieniach, aby indeksowanie mogło się rozwijać. Jeśli nie możesz sobie pozwolić na pominięcie dowolnego dokumentu lub jeśli ten błąd będzie stale wyświetlany, rozważ podzielenie dokumentów na mniejsze dokumenty, aby można było wykonać częściowy postęp w ramach pojedynczego wykonywania indeksatora.

Error: Could not project document

Ten błąd występuje, gdy indeksator próbuje projektować dane w magazynie wiedzy i wystąpił błąd podczas próby. Ten błąd może być spójny i naprawialny lub może to być błąd przejściowy z ujściem danych wyjściowych projekcji, który może wymagać oczekiwania i ponawiania próby w celu rozwiązania problemu. Oto zestaw znanych stanów awarii i możliwych rozwiązań.

Przyczyna Szczegóły/przykład Rozwiązanie
Nie można zaktualizować obiektu blob 'blobUri' projekcji w kontenerze 'containerName' Określony kontener nie istnieje. Indeksator sprawdza, czy określony kontener został wcześniej utworzony i utworzy go w razie potrzeby, ale wykonuje to sprawdzanie tylko raz na uruchomienie indeksatora. Ten błąd oznacza, że po wykonaniu tego kroku kontener został usunięty. Aby rozwiązać ten problem, spróbuj wykonać następujące polecenie: pozostaw same informacje o koncie magazynu, poczekaj na zakończenie indeksatora, a następnie uruchom ponownie indeksator.
Nie można zaktualizować obiektu blob 'blobUri' projekcji w kontenerze 'containerName' Nie można zapisać danych w połączeniu transportowym: istniejące połączenie zostało wymuszone przez hosta zdalnego. Oczekuje się, że będzie to błąd przejściowy w usłudze Azure Storage i w związku z tym powinien zostać rozwiązany przez ponowne uruchomienie indeksatora. Jeśli ten błąd występuje spójnie, utwórz bilet pomocy technicznej, aby można go było dokładniej zbadać.
Nie można zaktualizować wiersza 'projectionRow' w tabeli 'tableName' Serwer jest zajęty. Oczekuje się, że będzie to błąd przejściowy w usłudze Azure Storage i w związku z tym powinien zostać rozwiązany przez ponowne uruchomienie indeksatora. Jeśli ten błąd występuje spójnie, utwórz bilet pomocy technicznej, aby można go było dokładniej zbadać.

Error: The cognitive service for skill '<skill-name>' has been throttled

Wykonanie umiejętności nie powiodło się, ponieważ wywołanie usług Azure AI zostało ograniczone. Zazwyczaj ta klasa awarii występuje, gdy zbyt wiele umiejętności wykonuje równolegle. Jeśli używasz biblioteki klienta Microsoft.Search.Documents do uruchamiania indeksatora, możesz użyć elementu SearchIndexingBufferedSender , aby uzyskać automatyczne ponawianie prób w przypadku kroków, które zakończyły się niepowodzeniem. W przeciwnym razie można zresetować i ponownie uruchomić indeksator.

Error: Expected IndexAction metadata

Błąd "Oczekiwane metadane indexAction" oznacza, że gdy indeksator próbował odczytać dokument w celu zidentyfikowania, jaką akcję należy podjąć, nie znalazł żadnych odpowiednich metadanych w dokumencie. Zazwyczaj ten błąd występuje, gdy indeksator ma dodaną lub usuniętą pamięć podręczną adnotacji bez resetowania indeksatora. Aby rozwiązać ten problem, należy zresetować i ponownie uruchomić indeksator.

Warning: Skill input was invalid

Brak danych wejściowych umiejętności, nieprawidłowy typ lub nieprawidłowy. Mogą zostać wyświetlone następujące informacje:

  • Could not execute skill

  • Skill executed but may have unexpected results

Umiejętności poznawcze mają wymagane dane wejściowe i opcjonalne dane wejściowe. Na przykład umiejętność wyodrębniania fraz kluczowych ma dwa wymagane dane wejściowe , languageCodei nie ma opcjonalnych textdanych wejściowych. Niestandardowe dane wejściowe umiejętności są uznawane za opcjonalne dane wejściowe.

Jeśli w razie potrzeby brakuje danych wejściowych lub jeśli dane wejściowe nie są właściwym typem, umiejętności zostaną pominięte i wygenerują ostrzeżenie. Pominięte umiejętności nie generują danych wyjściowych. Jeśli umiejętności podrzędne wykorzystują dane wyjściowe pominiętej umiejętności, mogą wygenerować inne ostrzeżenia.

Jeśli brakuje opcjonalnych danych wejściowych, umiejętności nadal są uruchamiane, ale mogą powodować nieoczekiwane dane wyjściowe z powodu braku danych wejściowych.

W obu przypadkach to ostrzeżenie jest spowodowane kształtem danych. Jeśli na przykład masz dokument zawierający informacje o osobach z polami firstName, middleNamei lastName, może istnieć kilka dokumentów, które nie mają wpisu dla middleNameelementu . Jeśli przekazujesz middleName dane wejściowe do umiejętności w potoku, oczekuje się, że brakuje niektórych danych wejściowych umiejętności. Musisz ocenić dane i scenariusz, aby określić, czy w wyniku tego ostrzeżenia jest wymagana żadna akcja.

Jeśli chcesz podać wartość domyślną dla brakujących danych wejściowych, możesz użyć umiejętności warunkowej, aby wygenerować wartość domyślną, a następnie użyć danych wyjściowych umiejętności warunkowych jako danych wejściowych umiejętności.

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == null" },
        { "name": "whenTrue", "source": "= 'en'" },
        { "name": "whenFalse", "source": "= $(/document/language)" }
    ],
    "outputs": [ { "name": "output", "targetName": "languageWithDefault" } ]
}
Przyczyna Szczegóły/przykład Rozwiązanie
Wprowadzanie umiejętności jest nieprawidłowym typem "Wymagane dane wejściowe umiejętności nie były oczekiwanego typu String. Nazwa: text, Źródło: /document/merged_content." "Wymagane dane wejściowe umiejętności nie miały oczekiwanego formatu. Nazwa: text, Źródło: /document/merged_content." "Nie można iterować po tablicy /document/normalized_images/0/imageCelebrities/0/detail/celebrities." "Nie można wybrać 0 w tablicy /document/normalized_images/0/imageCelebrities/0/detail/celebrities" Niektóre umiejętności oczekują danych wejściowych określonych typów, na przykład Umiejętności tonacji oczekują text ciągu. Jeśli dane wejściowe określają wartość nieciągną, umiejętność nie jest wykonywana i nie generuje żadnych danych wyjściowych. Upewnij się, że zestaw danych ma wartości wejściowe jednolite w typie lub użyj umiejętności niestandardowego internetowego interfejsu API, aby wstępnie przetworzyć dane wejściowe. Jeśli iterujesz umiejętności w tablicy, sprawdź kontekst umiejętności i dane wejściowe w * odpowiednich pozycjach. Zazwyczaj zarówno kontekst, jak i źródło wejściowe powinny kończyć się * tablicami.
Brak danych wejściowych umiejętności Required skill input is missing. Name: text, Source: /document/merged_content Missing value /document/normalized_images/0/imageTags. Unable to select 0 in array /document/pages of length 0. Jeśli to ostrzeżenie wystąpi dla wszystkich dokumentów, w ścieżkach wejściowych może występować literówka. Sprawdź wielkość liter nazwy właściwości. Sprawdź dodatkowe lub brakujące * w ścieżce. Sprawdź, czy dokumenty ze źródła danych zawierają wymagane dane wejściowe.
Wprowadzanie kodu języka umiejętności jest nieprawidłowe Dane wejściowe languageCode umiejętności zawierają następujące kody X,Y,Zjęzyka , z których co najmniej jeden jest nieprawidłowy. Zobacz więcej szczegółów poniżej.

Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.

Co najmniej jedna z wartości przekazanych do opcjonalnych languageCode danych wejściowych umiejętności podrzędnych nie jest obsługiwana. Taka sytuacja może wystąpić, jeśli przekazujesz dane wyjściowe elementu LanguageDetectionSkill do kolejnych umiejętności, a dane wyjściowe składają się z większej liczby języków niż są obsługiwane w tych umiejętnościach podrzędnych.

Pamiętaj, że możesz również uzyskać ostrzeżenie podobne do tego, jeśli nieprawidłowe countryHint dane wejściowe zostaną przekazane do elementu LanguageDetectionSkill. W takim przypadku sprawdź, czy pole, którego używasz ze źródła danych dla tych danych wejściowych, zawiera prawidłowe kody kraju ISO 3166-1 alfa-2. Jeśli niektóre są prawidłowe, a niektóre są nieprawidłowe, postępuj zgodnie z poniższymi wskazówkami, ale zastąp languageCode element i countryHintdefaultLanguageCode , defaultCountryHint aby dopasować swój przypadek użycia.

Jeśli wiesz, że zestaw danych jest w jednym języku, należy usunąć język LanguageDetectionSkill i languageCode dane wejściowe umiejętności i użyć parametru defaultLanguageCode umiejętności dla tej umiejętności, zakładając, że język jest obsługiwany dla tej umiejętności.

Jeśli wiesz, że zestaw danych zawiera wiele języków, dlatego potrzebujesz elementu LanguageDetectionSkill i languageCode danych wejściowych, rozważ dodanie elementu ConditionalSkill , aby odfiltrować tekst za pomocą języków, które nie są obsługiwane przed przekazaniem tekstu do umiejętności podrzędnej. Oto przykład tego, jak może to wyglądać w przypadku elementu EntityRecognitionSkill:

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == 'de' || $(/document/language) == 'en' || $(/document/language) == 'es' || $(/document/language) == 'fr' || $(/document/language) == 'it'" },
        { "name": "whenTrue", "source": "/document/content" },
        { "name": "whenFalse", "source": "= null" }
    ],
    "outputs": [ { "name": "output", "targetName": "supportedByEntityRecognitionSkill" } ]
}

Poniżej przedstawiono niektóre odwołania do aktualnie obsługiwanych języków dla każdego z umiejętności, które mogą wygenerować ten komunikat o błędzie:

Warning: Skill input was truncated

Umiejętności poznawcze ograniczają długość tekstu, który można analizować jednocześnie. Jeśli wprowadzanie tekstu przekroczy limit, tekst zostanie obcięty, zanim zostanie wzbogacony. Umiejętności są wykonywane, ale nie na wszystkich danych.

W poniższym przykładzie LanguageDetectionSkill pole wejściowe może wyzwolić to ostrzeżenie, 'text' jeśli dane wejściowe przekracza limit znaków. Limity danych wejściowych można znaleźć w dokumentacji referencyjnej umiejętności.

 {
    "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
    "inputs": [
      {
        "name": "text",
        "source": "/document/text"
      }
    ],
    "outputs": [...]
  }

Jeśli chcesz mieć pewność, że cały tekst jest analizowany, rozważ użycie umiejętności Podziel.

Warning: Web API skill response contains warnings

Indeksator uruchomił umiejętności w zestawie umiejętności, ale odpowiedź z żądania internetowego interfejsu API wskazuje, że istnieją ostrzeżenia. Przejrzyj ostrzeżenia, aby dowiedzieć się, jak wpływa to na dane i czy wymagane są dalsze działania.

Warning: The current indexer configuration does not support incremental progress

To ostrzeżenie występuje tylko w przypadku źródeł danych usługi Azure Cosmos DB.

Przyrostowy postęp podczas indeksowania gwarantuje, że jeśli wykonywanie indeksatora zostanie przerwane przez przejściowe błędy lub limit czasu wykonywania, indeksator może odebrać miejsce, w którym została przerwana przy następnym uruchomieniu, zamiast konieczności ponownego indeksowania całej kolekcji od podstaw. Jest to szczególnie ważne podczas indeksowania dużych kolekcji.

Możliwość wznowienia niedokończonego zadania indeksowania jest poprzedzona kolejnością dokumentów uporządkowanych przez kolumnę _ts . Indeksator używa znacznika czasu, aby określić, który dokument ma być pobierany dalej. _ts Jeśli brakuje kolumny lub indeksator nie może określić, czy zapytanie niestandardowe jest uporządkowane według niego, indeksator zaczyna się od początku i zobaczysz to ostrzeżenie.

To zachowanie można zastąpić, włączając postęp przyrostowy i pomijając to ostrzeżenie przy użyciu assumeOrderByHighWaterMarkColumn właściwości konfiguracji.

Aby uzyskać więcej informacji, zobacz Przyrostowy postęp i zapytania niestandardowe.

Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.

Usługa Table Storage ma limity dotyczące tego, jak duże mogą być właściwości jednostki. Ciągi mogą mieć co najmniej 32 000 znaków. Jeśli projektuje się wiersz z właściwością ciągu dłuższą niż 32 000 znaków, zachowywane są tylko pierwsze 32 000 znaków. Aby obejść ten problem, unikaj projekcji wierszy z właściwościami ciągu dłuższymi niż 32 000 znaków.

Warning: Truncated extracted text to X characters

Indeksatory ograniczają ilość tekstu do wyodrębnienia z dowolnego dokumentu. Ten limit zależy od warstwy cenowej: 32 000 znaków dla warstwy Bezpłatna, 64 000 dla warstwy Podstawowa, 4 miliony dla warstwy Standardowa, 8 milionów dla warstwy Standardowa S2 i 16 milionów dla warstwy Standardowa S3. Tekst obcięty nie będzie indeksowany. Aby uniknąć tego ostrzeżenia, spróbuj podzielić dokumenty z dużą ilością tekstu na wiele mniejszych dokumentów.

Aby uzyskać więcej informacji, zobacz Limity indeksatora.

Warning: Could not map output field 'X' to search index

Mapowania pól wyjściowych odwołujące się do danych nieistniejących/null spowodują wygenerowanie ostrzeżeń dla każdego dokumentu i wyświetlenie pustego pola indeksu. Aby obejść ten problem, sprawdź dwukrotnie ścieżki źródłowe mapowania pól wyjściowych pod kątem możliwych literówek lub ustaw wartość domyślną przy użyciu umiejętności warunkowej. Aby uzyskać szczegółowe informacje, zobacz Mapowanie pól wyjściowych.

Przyczyna Szczegóły/przykład Rozwiązanie
Nie można iterować poza tablicą "Nie można iterować po tablicy /document/normalized_images/0/imageCelebrities/0/detail/celebrities." Ten błąd występuje, gdy dane wyjściowe nie są tablicą. Jeśli uważasz, że dane wyjściowe powinny być tablicą, sprawdź wskazaną ścieżkę pola źródła danych wyjściowych pod kątem błędów. Na przykład może być brakujący lub dodatkowy * w nazwie pola źródłowego. Istnieje również możliwość, że dane wejściowe tej umiejętności mają wartość null, co powoduje pustą tablicę. Znajdź podobne szczegóły w sekcji Dane wejściowe umiejętności były nieprawidłowe .
Nie można wybrać 0 w tablicy innej niż tablica "Nie można wybrać 0 w tablicy innej niż tablica /document/pages". Może się tak zdarzyć, jeśli dane wyjściowe umiejętności nie generują tablicy, a nazwa pola źródłowego danych wyjściowych zawiera indeks tablicy lub * ścieżkę. Dokładnie sprawdź ścieżki podane w nazwach pól źródła danych wyjściowych i wartość pola dla wskazanej nazwy pola. Znajdź podobne szczegóły w sekcji Dane wejściowe umiejętności były nieprawidłowe .

Warning: The data change detection policy is configured to use key column 'X'

Zasady wykrywania zmian danych mają określone wymagania dotyczące kolumn używanych do wykrywania zmian. Jednym z tych wymagań jest to, że ta kolumna jest aktualizowana za każdym razem, gdy element źródłowy zostanie zmieniony. Innym wymaganiem jest to, że nowa wartość dla tej kolumny jest większa niż poprzednia wartość. Kolumny kluczy nie spełniają tego wymagania, ponieważ nie zmieniają się w każdej aktualizacji. Aby obejść ten problem, wybierz inną kolumnę dla zasad wykrywania zmian.

Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark

Tryby analizowania indeksatora muszą wiedzieć, jak tekst jest kodowany przed przeanalizowaniem. Dwa najbardziej typowe sposoby kodowania tekstu to UTF-16 i UTF-8. UTF-8 to kodowanie o zmiennej długości, w którym każdy znak ma długość od 1 bajtu do 4 bajtów. UTF-16 to kodowanie o stałej długości, w którym każdy znak ma długość 2 bajtów. UtF-16 ma dwa różne warianty: big endian i little endian. Kodowanie tekstu jest określane przez byte order mark, serię bajtów przed tekstem.

Kodowanie Znacznik kolejności bajtów
UTF-16 Big Endian 0xFE 0xFF
UTF-16 Little Endian 0xFF 0xFE
UTF-8 0xEF 0xBB 0xBF

Jeśli nie ma żadnego znacznika kolejności bajtów, przyjmuje się, że tekst zostanie zakodowany jako UTF-8.

Aby obejść to ostrzeżenie, określ kodowanie tekstu dla tego obiektu blob i dodaj odpowiedni znacznik kolejności bajtów.

Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost

Kolekcje z zasadami indeksowania z opóźnieniem nie mogą być stale odpytywane, co powoduje brak danych indeksatora. Aby obejść to ostrzeżenie, zmień zasady indeksowania na Spójne.

Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.

To ostrzeżenie jest przekazywane z usługi językowej usług Azure AI. W niektórych przypadkach można zignorować to ostrzeżenie, na przykład jeśli długi ciąg jest tylko długim adresem URL. Należy pamiętać, że gdy słowo jest dłuższe niż 64 znaki, jest to "obcięte do 64 znaków, które mogą mieć wpływ na przewidywania modelu.

Error: Cannot write more bytes to the buffer than the configured maximum buffer size

Indeksatory mają limity rozmiaru dokumentu. Upewnij się, że dokumenty w źródle danych są mniejsze niż obsługiwany limit rozmiaru, zgodnie z dokumentacją dla warstwy usługi.