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

Uwaga

Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.

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 Wyszukiwanie AI platformy Azure.

Indeksowanie zatrzymuje się, gdy liczba błędów przekracza wartość maxFailedItems. Aby umożliwić indeksatorom pomijanie dokumentów, które zakończyły się niepowodzeniem, skonfiguruj parametr maxFailedItemsandmaxFailedItemsPerBatch.

Uwaga

Każdy dokument, którego przetwarzanie zakończyło się niepowodzeniem, oraz jego klucz dokumentu, jeśli jest dostępny, pojawiają się jako błąd w stanie wykonania indeksatora. Jeśli skonfigurujesz indeksator tak, aby tolerował błędy, możesz użyć opcji Dokumenty — indeks , aby przekazać dokumenty później.

Ostrzeżenia nie zatrzymują indeksowania, ale mogą wskazywać 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:

  1. Przejdź do usługi wyszukiwania w witrynie Azure Portal.

  2. Po lewej stronie rozwiń zarządzanie wyszukiwaniem>Indeksatory i wybierz indeksator.

  3. W Historii wykonywania wybierz status. Wszystkie statusy, w tym Sukces, zawierają szczegółowe informacje o wykonaniu.

  4. 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, zalecamy umieszczenie indeksatora zgodnie z harmonogramem, na przykład co pięć minut, w którym następny przebieg rozpoczyna się pięć minut po zakończeniu pierwszego uruchomienia, przestrzegając maksymalnego limitu czasu wykonywania usługi. Regularne zaplanowane uruchomienia pomagają naprawiać błędy przejściowe lub ostrzeżenia.

Jeśli błąd będzie się powtarzać w przypadku wielu przebiegów indeksatora, prawdopodobnie nie jest to problem przejściowy. W takich przypadkach zapoznaj się z poniższą listą potencjalnych rozwiązań.

Właściwości błędu

Właściwość Opis Przykład
Klucz Identyfikator dokumentu, na który ma wpływ błąd lub ostrzeżenie. Przykład usługi Azure Storage, w którym domyślnym identyfikatorem jest ścieżka magazynu metadanych: https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf
Nazwa Operacja powodująca błąd lub ostrzeżenie. 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, takie jak odpowiedź interfejsu WebApi, które mogą być przydatne podczas diagnozowania problemu, jeśli realizacja niestandardowej umiejętności nie powiodła 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. Może się to zdarzyć z powodu:

Powód Szczegóły/przykład Rozdzielczość
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 w dokumencie 'startTime' jest typu DateTime, a w drugim dokumencie jest typu string, pojawi się ten błąd.
Błędy z usługi bazowej źródła danych Z usługi Azure Cosmos DB: {"Errors":["Request rate is large"]} Sprawdź instancję magazynową, aby mieć pewność, że jest 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). Może się to zdarzyć z powodu:

Powód Szczegóły/przykład Rozdzielczość
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 blobów
Obiekt blob ma nieobsługiwany typ zawartości Document has unsupported content type 'image/png' Błędy indeksowania blobów
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. Może się to zdarzyć z powodu:

Powód Szczegóły/przykład Rozdzielczość
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.

Powód Szczegóły/przykład Rozdzielczość
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.
Wystąpił błąd umiejętności podczas wykonywania. (Z poziomu umiejętności scalania) Co najmniej jedna z wartości przesunięcia była nieprawidłowa i nie można było jej przeanalizować. Elementy zostały wstawione na końcu tekstu Użyj informacji w komunikacie o błędzie, aby rozwiązać problem. Ten rodzaj problemu wymaga podjęcia działania.

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

Wykonanie umiejętności nie powiodło się, ponieważ wywołanie interfejsu API zakończyło się niepowodzeniem. 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 API Web może zawodzić, ponieważ indeksator przekazuje mu nieoczekiwane wejście.

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

Niepowodzenie wykonania działania, ponieważ wywołanie webowego 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 problem pochodzi z wbudowanej umiejętności, zgłoś wniosek 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, która funkcja zwróciła ten błąd.

Wbudowane umiejętności narzędzi Foundry Tools

Wiele wbudowanych umiejętności poznawczych, takich jak wykrywanie języka, rozpoznawanie jednostek lub OCR, jest wspieranych przez punkt końcowy interfejsu API narzędzi Foundry. Czasami występują przejściowe problemy z tymi punktami końcowymi i żądanie może przekroczyć limit czasu. W przypadku przejściowych problemów nie ma żadnego rozwiązania, z wyjątkiem czekania i ponownej próby. Jako środki zaradcze rozważ ustawienie indeksatora, aby był uruchamiany zgodnie z harmonogramem. Zaplanowane indeksowanie wznawia się od miejsca, w którym zostało przerwane. Zakładając, że problemy przejściowe zostały rozwiązane, indeksowanie i przetwarzanie umiejętności poznawczych powinno móc być kontynuowane w następnym zaplanowanym procesie.

Jeśli ten błąd będzie nadal wyświetlany w tym samym dokumencie dla wbudowanej funkcji kognitywnej, zgłoś zgłoszenie serwisowe, aby uzyskać pomoc, ponieważ nie jest to przewidziane.

Umiejętności niestandardowe

Jeśli napotkasz błąd przekroczenia limitu czasu z niestandardową umiejętnością, możesz spróbować kilku rozwiązań. 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 został zwrócony wynik, sprawdź czas wykonania. 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 uruchomić twojego skilla, możesz określić wyższą timeout wartość w niestandardowej definicji skilla. 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 może być wykonywana spójnie w ciągu 230 sekund, możesz rozważyć zmniejszenie batchSize niestandardowej umiejętności, aby do przetworzenia było mniej dokumentów w ramach jednego wykonania. Jeśli już ustawiłeś batchSize na 1, musisz przepisać umiejętność, aby móc ją wykonać w czasie poniżej 230 sekund lub w inny sposób podzielić ją na wiele umiejętności niestandardowych, aby czas wykonywania każdej z umiejętności niestandardowej wynosił 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. Może się to zdarzyć z powodu:

Powód Szczegóły/przykład Rozdzielczość
Pole zawiera termin, który jest zbyt duży Termin w dokumencie jest większy niż limit 32 KB Tego ograniczenia można uniknąć, upewniając się, że pole nie jest skonfigurowane jako możliwe do filtrowania, aspektowe ani sortowalne.
Dokument jest zbyt duży, aby go zaindeksować. 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 maksymalną liczbę elementów we wszystkich złożonych kolekcjach. 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ązaniem połączenia z indeksem docelowym (utrzymującym się pomimo ponownych prób), ponieważ usługa jest obciążona innymi zadaniami, takimi 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 wyłączona/usługa wyszukiwania przechodzi przejście. Skonfiguruj usługę z co najmniej trzema replikami, aby zapewnić 99,9% dostępność zgodnie z dokumentacją 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, aby wznowić działanie po awarii.
Żą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, aby wznowić działanie po awarii. Ponadto spróbuj zmniejszyć rozmiar partii indeksatora, jeśli ten błąd 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. Może się to zdarzyć z powodu:

Powód 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 że mapujesz pole klucza na pole, które jest gwarantowane, że nie będzie miało 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 wykonania 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 stać Cię na pominięcie jakiegokolwiek dokumentu lub jeśli ten błąd będzie się stale pojawiał, rozważ podzielenie dokumentów na mniejsze, aby można było osiągnąć częściowy postęp podczas jednorazowego uruchomienia indeksatora.

Error: Could not project document

Ten błąd występuje, gdy indeksator próbuje przenosić dane do magazynu wiedzy i próba ta zakończyła się niepowodzeniem. Ten błąd może być powtarzalny i da się naprawić, lub może to być błąd przejściowy z wyjściowym ujściem projekcji, który może wymagać ponowienia próby po pewnym czasie w celu rozwiązania problemu. Oto zestaw znanych stanów awarii i możliwych rozwiązań.

Powód Szczegóły/przykład Rozdzielczość
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: nie zmieniaj informacji o koncie magazynowym, 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 do połączenia transportowego: istniejące połączenie zostało siłowo zamknięte przez zdalnego hosta. 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 regularnie, utwórz zgłoszenie do pomocy technicznej, aby można było go 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 regularnie, utwórz zgłoszenie do pomocy technicznej, aby można było go 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 narzędzi Foundry Tools zostało ograniczone. Zazwyczaj tego rodzaju awarie występują, gdy zbyt wiele działań jest wykonywanych 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

Brakowało jednego z danych wejściowych wymaganych przez umiejętność, miało ono niewłaściwy typ lub było w inny sposób nieprawidłowe. 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 , texti nie ma opcjonalnych languageCodedanych wejściowych. Niestandardowe dane wejściowe umiejętności są uznawane za opcjonalne dane wejściowe.

Jeśli brakuje danych wejściowych lub jeśli dane wejściowe nie są właściwego typu, operacja zostanie pominięta, a wygenerowane zostanie ostrzeżenie. Pominięte umiejętności nie generują wyników. 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, funkcja nadal działa, ale może generować nieoczekiwane wyniki z powodu ich braku.

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, middleName, i lastName, może istnieć kilka dokumentów, które nie mają wpisu dla middleName elementu. Jeśli przekazujesz middleName jako dane wejściowe do umiejętności w potoku, oczekuje się, że czasami te dane wejściowe będą nieobecne. Musisz ocenić dane i scenariusz, aby określić, czy w wyniku tego ostrzeżenia jest wymagana jakaś 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" } ]
}
Powód Szczegóły/przykład Rozdzielczość
Parametr danych wejściowych ma niewłaściwy typ "Wymagane dane wejściowe umiejętności nie były oczekiwanego typu String. Nazwa: text, Źródło: /document/merged_content." "Wymagane dane dotyczące umiejętności nie miały oczekiwanego formatu. Nazwa: text, Źródło: /document/merged_content." "Nie można iterować po nie będącej tablicą /document/normalized_images/0/imageCelebrities/0/detail/celebrities." "Nie można wybrać 0 w nie będącej tablicą /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ść analizy sentymentu żąda, aby text był ciągiem znaków. Jeśli dane wejściowe określają wartość niebędącą ciągiem znaków, umiejętność się nie wykonuje i nie generuje żadnych wyników. 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ść w tablicy, sprawdź, czy kontekst umiejętności oraz dane wejściowe mają * w odpowiednich miejscach. Zazwyczaj zarówno kontekst, jak i źródło wejściowe powinny kończyć się na * dla tablic.
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ź, czy nie ma dodatkowego lub brakującego * 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 umiejętności languageCode zawierają następujące kody języka X,Y,Z, 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, zawiera prawidłowe dwuliterowe kody kraju ISO 3166-1 alfa-2. Jeśli niektóre są prawidłowe, a niektóre nieprawidłowe, postępuj zgodnie z poniższymi wskazówkami, ale zastąp languageCode na countryHint i defaultLanguageCode na defaultCountryHint , aby dopasować do swojego przypadku użycia.

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

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. Funkcja działa, 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 przekraczają limit znaków. Limity wejściowe można znaleźć w dokumentacji 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 zapewnia, że jeśli wykonywanie indeksatora zostanie przerwane przez przejściowe błędy lub limit czasu wykonywania, indeksator może wznowić działanie od momentu zatrzymania 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 zależy od uporządkowania dokumentów według kolumny _ts. Indeksator używa znacznika czasu, aby określić, który dokument ma być pobierany dalej. Jeśli brakuje kolumny _ts lub indeksator nie może określić, czy zapytanie niestandardowe jest uporządkowane według niej, indeksator rozpocznie pracę od początku i wtedy zobaczysz to ostrzeżenie.

Można zastąpić to zachowanie i umożliwić progres przyrostowy oraz wyciszyć to ostrzeżenie przy użyciu właściwości konfiguracji assumeOrderByHighWaterMarkColumn.

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ć maksymalnie 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 .

Powód Szczegóły/przykład Rozdzielczość
Nie można iterować po nie-tablicy Nie można iterować po nie-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 w nazwie pola źródłowego może brakować lub być dodatkowy *. 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 poza tablicą "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 ma w swojej ścieżce indeks tablicy lub *. 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.

Encoding Znacznik kolejności bajtów
UTF-16 w kolejności bajtów od największego do najmniejszego (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 bloba 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 narzędzi Foundry Tools. 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 wyraz jest dłuższy niż 64 znaki, jest obcinany do 64 znaków, co może 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 poziomu usługi.

Error: Failed to compare value 'X' of type M to value 'Y' of type N.

Ten błąd zwykle występuje w indeksatorach usługi Azure SQL, gdy typ kolumny źródłowej używanej dla dataChangeDetectionPolicy elementu nie jest zgodny z oczekiwaniami indeksatora, zwłaszcza jeśli convertHighWaterMarkToRowVersion jest włączony.

Jeśli na przykład kolumna używana do wykrywania zmian jest typu data/godzina, ale indeksator oczekuje typu rowversion, ponieważ parametr convertHighWaterMarkToRowVersion jest włączony, niezgodność spowoduje błąd.

Sprawdź typ danych kolumny "High Water Mark" w źródle i odpowiednio zaktualizuj konfigurację indeksatora. Po zweryfikowaniu i zaktualizowaniu zresetuj i ponownie uruchom indeksator, aby przetworzyć wartości kolumn.

Error: Access denied to Virtual Network/Firewall rules

Ten błąd zazwyczaj występuje z powodu jednego z następujących elementów:

Upewnij się, że indeksator ma dostęp do składników konfiguracji, przeglądając konfiguracje zasobów, aby potwierdzić, że zezwalają na ruch do wszystkich wymaganych usług:

Error: Credentials provided in the connection string are invalid or have expired

Ten błąd występuje, gdy indeksator usługi Wyszukiwanie AI platformy Azure nie może uwierzytelnić się przy użyciu podanych parametrów połączenia lub ma problemy z dostępem do konta magazynu w celu zweryfikowania poświadczeń.

Możliwa przyczyna Szczegóły/przykład Rozdzielczość
Wygasły lub obracany klucz Parametry połączenia zawierają nieaktualny klucz, który już nie działa. Przejdź do zasobu, który jest kontaktowany (na przykład Azure Storage lub Azure SQL) i skopiuj najnowsze klucze dostępu, jeśli korzystasz z uwierzytelniania opartego na kluczach, a następnie odpowiednio zaktualizuj źródło danych lub parametry połączenia.
Tożsamość zarządzana nie została włączona lub nie udzielono dostępu Usługa wyszukiwania sztucznej inteligencji tożsamość zarządzana jest włączona, ale brakuje jej wymaganych ról dostępu. — Włącz tożsamość zarządzaną przypisaną przez użytkownika lub systemową w usłudze wyszukiwania.
— Przypisz odpowiednie role do tożsamości w zakresie zasobów wymaganym przez źródło danych. Na przykład przypisz Storage Blob Data Reader w zakresie konta magazynu dla źródła danych usługi Azure Blob Storage. Każde źródło danych ma własne wymagania dotyczące uprawnień.
Sieć/zapora sieciowa blokuje dostęp do danych uwierzytelniających Kontaktowany zasób jest skonfigurowany do ograniczania dostępu do sieci. Skonfiguruj ustawienia sieciowe , aby zezwolić na dostęp do usługi Wyszukiwanie AI platformy Azure.
Autoryzacja klucza została wyłączona Dostęp do klucza współużytkowanego został usunięty w źródle, ale konfiguracja źródła danych usługi wyszukiwania nadal używa uwierzytelniania opartego na kluczach. Użyj uwierzytelniania tożsamości zarządzanej i zapewnij, że uprawnienia oparte na rolach są odpowiednio wdrożone. Z punktu widzenia usługi Azure Storage oznacza to, że funkcjonalność autoryzacji za pomocą klucza współdzielonego jest zablokowana, albo bezpośrednio na poziomie konta magazynu, albo poprzez wymuszenie zasad platformy Azure na poziomie przedsiębiorstwa.

Error: Invalid AAD tenant

Ten komunikat może się pojawić, gdy indeksator SharePoint w Microsoft 365 nie może uwierzytelnić się w dzierżawie Microsoft Entra, do której należy ta witryna SharePoint. TenantId Jest opcjonalny w parametrze połączenia źródła danych SharePoint, ale każda podana wartość musi być identyfikatorem dzierżawy Microsoft Entra (GUID) dla tej witryny. Ta dzierżawa niekoniecznie jest dzierżawą Microsoft Entra skojarzoną z Twoją usługą wyszukiwania.

Skorzystaj z poniższych wskazówek, aby rozwiązać ten problem:

  • W przypadku połączenia SharePoint między dzierżawami uwzględnij identyfikator dzierżawy Microsoft Entra witryny SharePoint jako TenantId w parametrach połączenia.
  • W przypadku połączenia w ramach tej samej dzierżawy Microsoft Entra dołącz identyfikator dzierżawy witryny SharePoint lub włącz tożsamość zarządzaną przypisaną przez system usługi wyszukiwania. Jeśli pominiesz TenantId, indeksator użyje dzierżawcy zasobu Microsoft Entra skojarzonego z tą tożsamością.
  • Jeśli nie jest dostępna ani jawnie określona TenantId, ani dzierżawa zasobu, indeksator raportuje: Ensure service managed identity is enabled for your service, or TenantId is specified in your parametry połączenia.

Źle sformułowana wartość, która nie jest identyfikatorem GUID, może spowodować niepowodzenie podczas tworzenia lub aktualizowania źródła danych. Prawidłowo sformatowany identyfikator dla niewłaściwego dzierżawcy Microsoft Entra może przejść walidację źródła danych, ale zakończyć się niepowodzeniem podczas uwierzytelniania indeksatora. W przypadku błędów wykonania przejdź do usługi wyszukiwania w witrynie Azure Portal, wybierz pozycję Zarządzanie wyszukiwaniem>Indeksatory, wybierz indeksator i sprawdź jego Historię wykonywania oraz szczegóły stanu.

Aby uzyskać formaty parametrów połączenia i instrukcje znajdowania identyfikatora dzierżawy Microsoft Entra dla witryny programu SharePoint, zobacz Konfigurowanie indeksatora programu SharePoint w usłudze Microsoft 365.

Error: Error detecting index schema from data source

Środowisko witryny Azure Portal używane do konfigurowania indeksatora nie może pobrać informacji o schemacie ze źródła danych. Może się to zdarzyć z powodu przejściowych problemów z łącznością lub ograniczeń konfiguracji sieci, które uniemożliwiają usłudze Wyszukiwanie AI platformy Azure uzyskiwanie dostępu do źródła.

Powód Szczegóły/przykład Rozdzielczość
Przejściowe problemy z komunikacją Failed to fetch, this could be due to transient communication errors with the source Przejściowe błędy mogą wystąpić z powodu tymczasowych przerw w działaniu sieci lub przekroczenia limitu czasu usługi. Ponów próbę wykonania operacji. Jeśli problem jest przejściowy, powinien ustąpić podczas kolejnych wywołań.
Ograniczenia prywatnego punktu końcowego Źródło danych jest chronione przez sieć wirtualną lub prywatny punkt końcowy, uniemożliwiając dostęp z indeksatora. Jeśli źródło danych znajduje się za prywatnym punktem końcowym, skonfiguruj udostępniony link prywatny , aby usługa Wyszukiwanie AI platformy Azure mogła łączyć się prywatnie z zasobem. Upewnij się, że połączenie prywatnego punktu końcowego zostało zatwierdzone.
Reguły zapory blokujące dostęp Źródło danych ma reguły zapory, które blokują żądania z usługi Wyszukiwanie AI platformy Azure. Zaktualizuj ustawienia zapory, aby zezwolić na ruch przychodzący z usługi Wyszukiwanie AI platformy Azure. Zobacz Konfigurowanie reguł zapory, aby zezwolić na dostęp indeksatora. Upewnij się, że adres IP usługi wyszukiwania lub wyjątki zaufanej usługi są dozwolone.
Konfiguracja sieci nie zezwala na dostęp indeksatora Źródło danych jest skonfigurowane tak, aby zezwalało tylko na wybrane sieci bez uwzględniania usługi Wyszukiwanie AI platformy Azure. Sprawdź, czy konfiguracja sieci źródła danych zezwala na dostęp z usługi Wyszukiwanie AI platformy Azure przy użyciu jednej z obsługiwanych opcji łączności: publiczny punkt końcowy z regułami adresów IP, udostępniony link prywatny lub zaufany dostęp do usługi.