Udostępnij za pośrednictwem


Indeksowanie danych z usługi Azure Blob Storage

W tym artykule dowiesz się, jak skonfigurować indeksator , który importuje zawartość z usługi Azure Blob Storage i umożliwia wyszukiwanie w usłudze Azure AI Search. Dane wejściowe indeksatora to obiekty blob w jednym kontenerze. Dane wyjściowe to indeks wyszukiwania z zawartością z możliwością wyszukiwania i metadanymi przechowywanymi w poszczególnych polach.

Aby skonfigurować i uruchomić indeksator, możesz użyć:

W tym artykule użyto interfejsów API REST do zilustrowania poszczególnych kroków.

Wymagania wstępne

  • Azure Blob Storage, wydajność w warstwie Standardowa (ogólnego przeznaczenia w wersji 2).

  • Warstwy dostępu obejmują gorącą, chłodną, zimną i archiwum. Indeksatory mogą pobierać obiekty blob w warstwach dostępu Gorąca, Chłodna i Chłodna.

  • Obiekty blob dostarczające zawartość tekstowa i metadane. Jeśli obiekty blob zawierają zawartość binarną lub tekst bez struktury, rozważ dodanie wzbogacania sztucznej inteligencji na potrzeby przetwarzania obrazów i języka naturalnego. Zawartość obiektu blob nie może przekraczać limitów indeksatora dla warstwy usługi wyszukiwania.

  • Obsługiwana konfiguracja sieci i dostęp do danych. Co najmniej potrzebne są uprawnienia do odczytu w usłudze Azure Storage. Parametry połączenia magazynu, który zawiera klucz dostępu, zapewnia dostęp do odczytu do zawartości magazynu. Jeśli zamiast tego używasz identyfikatorów logowania i ról firmy Microsoft Entra, upewnij się, że tożsamość zarządzana usługi wyszukiwania ma uprawnienia Czytelnik danych obiektu blob usługi Storage.

    Domyślnie zarówno wyszukiwanie, jak i magazyn akceptują żądania z publicznych adresów IP. Jeśli zabezpieczenia sieciowe nie są bezpośrednim problemem, możesz indeksować dane obiektów blob przy użyciu tylko parametry połączenia i uprawnień do odczytu. Gdy wszystko będzie gotowe do dodania ochrony sieci, zobacz Indeksator dostępu do zawartości chronionej przez funkcje zabezpieczeń sieci platformy Azure, aby uzyskać wskazówki dotyczące dostępu do danych.

  • Użyj klienta REST, aby sformułować wywołania REST podobne do tych przedstawionych w tym artykule.

Obsługiwane zadania

Tego indeksatora można używać do wykonywania następujących zadań:

  • Indeksowanie danych i indeksowanie przyrostowe: indeksator może indeksować pliki i skojarzone metadane z kontenerów obiektów blob i folderów. Wykrywa nowe i zaktualizowane pliki i metadane za pomocą wbudowanego wykrywania zmian. Odświeżanie danych można skonfigurować zgodnie z harmonogramem lub na żądanie.
  • Wykrywanie usuwania: indeksator może wykrywać usunięcia za pomocą natywnego usuwania nietrwałego lub za pośrednictwem metadanych niestandardowych.
  • Zastosowana sztuczna inteligencja za pomocą zestawów umiejętności: zestawy umiejętności są w pełni obsługiwane przez indeksator. Obejmuje to kluczowe funkcje, takie jak wektoryzacja zintegrowana, które dodają kroki fragmentowania i osadzania danych.
  • Tryby analizowania: indeksator obsługuje tryby analizowania JSON, jeśli chcesz przeanalizować tablice JSON lub wiersze do poszczególnych dokumentów wyszukiwania. Obsługuje również tryb analizowania języka Markdown.
  • Zgodność z innymi funkcjami: indeksator został zaprojektowany tak, aby bezproblemowo pracować z innymi funkcjami indeksatora, takimi jak sesje debugowania, pamięć podręczna indeksatora na potrzeby wzbogacania przyrostowego i magazynu wiedzy.

Obsługiwane formaty dokumentów

Indeksator obiektów blob może wyodrębnić tekst z następujących formatów dokumentów:

  • CSV (zobacz Indeksowanie obiektów blob CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (zobacz Indeksowanie obiektów blob JSON)
  • KML (XML dla reprezentacji geograficznych)
  • Formaty pakietu Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (wiadomości e-mail programu Outlook), XML (zarówno 2003, jak i 2006 WORD XML)
  • Otwieranie formatów dokumentów: ODT, ODS, ODP
  • PDF
  • Pliki zwykłego tekstu (zobacz też Indeksowanie zwykłego tekstu)
  • RTF
  • Plik XML
  • ZIP

Określanie obiektów blob do indeksowania

Przed skonfigurowaniem indeksowania przejrzyj dane źródłowe, aby ustalić, czy jakiekolwiek zmiany powinny zostać wprowadzone z góry. Indeksator może indeksować zawartość z jednego kontenera jednocześnie. Domyślnie wszystkie obiekty blob w kontenerze są przetwarzane. Istnieje kilka opcji bardziej selektywnego przetwarzania:

  • Umieść obiekty blob w folderze wirtualnym. Definicja źródła danych indeksatora zawiera parametr "query", który może przyjmować folder wirtualny. W przypadku określenia folderu wirtualnego indeksowane są tylko te obiekty blob w folderze.

  • Dołączanie lub wykluczanie obiektów blob według typu pliku. Lista obsługiwanych formatów dokumentów może pomóc w ustaleniu, które obiekty blob mają zostać wykluczone. Możesz na przykład wykluczyć pliki obrazów lub audio, które nie udostępniają tekstu z możliwością wyszukiwania. Ta funkcja jest kontrolowana za pomocą ustawień konfiguracji w indeksatorze.

  • Dołączanie lub wykluczanie dowolnych obiektów blob. Jeśli chcesz pominąć określony obiekt blob z dowolnego powodu, możesz dodać następujące właściwości metadanych i wartości do obiektów blob w usłudze Blob Storage. Gdy indeksator napotka tę właściwość, pomija obiekt blob lub jego zawartość w przebiegu indeksowania.

    Nazwa właściwości Wartości właściwości Wyjaśnienie
    "AzureSearch_Skip" "true" Nakazuje indeksatorowi obiektów blob całkowite pominięcie obiektu blob. Ani metadane, ani wyodrębnianie zawartości nie są podejmowane. Jest to przydatne, gdy określony obiekt blob wielokrotnie kończy się niepowodzeniem i przerywa proces indeksowania.
    "AzureSearch_SkipContent" "true" Pomija zawartość i wyodrębnia tylko metadane. Jest to odpowiednik ustawienia opisanego "dataToExtract" : "allMetadata" w ustawieniach konfiguracji , tylko w zakresie określonego obiektu blob.

Jeśli nie skonfigurujesz kryteriów dołączania lub wykluczania, indeksator zgłasza niekwalifikowany obiekt blob jako błąd i przechodzi dalej. Jeśli wystąpi wystarczająca liczba błędów, przetwarzanie może zostać zatrzymane. Tolerancja błędów można określić w ustawieniach konfiguracji indeksatora.

Indeksator zwykle tworzy jeden dokument wyszukiwania na obiekt blob, w którym zawartość tekstowa i metadane są przechwytywane jako pola z możliwością wyszukiwania w indeksie. Jeśli obiekty blob są całymi plikami, możesz je potencjalnie przeanalizować w wielu dokumentach wyszukiwania. Można na przykład przeanalizować wiersze w pliku CSV, aby utworzyć jeden dokument wyszukiwania dla każdego wiersza.

Złożony lub osadzony dokument (taki jak archiwum ZIP, dokument programu Word z osadzoną wiadomością e-mail programu Outlook zawierającą załączniki lub . Plik MSG z załącznikami) jest również indeksowany jako pojedynczy dokument. Na przykład wszystkie obrazy wyodrębnione z załączników obiektu . Plik MSG zostanie zwrócony w polu normalized_images. Jeśli masz obrazy, rozważ dodanie wzbogacania sztucznej inteligencji , aby uzyskać więcej narzędzi wyszukiwania z tej zawartości.

Tekstowa zawartość dokumentu jest wyodrębniona do pola ciągu o nazwie "content". Można również wyodrębnić standardowe i zdefiniowane przez użytkownika metadane.

Indeksowanie metadanych obiektu blob

Metadane obiektów blob mogą być również indeksowane i jest to przydatne, jeśli uważasz, że dowolne ze standardowych lub niestandardowych właściwości metadanych jest przydatne w filtrach i zapytaniach.

Właściwości metadanych określonych przez użytkownika są wyodrębniane dosłownie. Aby otrzymywać wartości, należy zdefiniować pole w indeksie wyszukiwania typu Edm.String, o takiej samej nazwie jak klucz metadanych obiektu blob. Jeśli na przykład obiekt blob ma klucz metadanych o Sensitivity wartości High, należy zdefiniować pole o nazwie Sensitivity w indeksie wyszukiwania i zostanie wypełnione wartością High.

Właściwości metadanych obiektu blob w warstwie Standardowa można wyodrębnić w polach o podobnych nazwach i typach, jak pokazano poniżej. Indeksator obiektów blob automatycznie tworzy wewnętrzne mapowania pól dla tych właściwości metadanych obiektu blob, konwertując oryginalną nazwę łącznika ("metadata-storage-name") na podkreślonej równoważnej nazwie ("metadata_storage_name").

Nadal musisz dodać pola podkreślone do definicji indeksu, ale można pominąć mapowania pól, ponieważ indeksator automatycznie utworzy skojarzenie.

  • metadata_storage_name (Edm.String) — nazwa pliku obiektu blob. Jeśli na przykład masz obiekt blob /my-container/my-folder/subfolder/resume.pdf, wartość tego pola to resume.pdf.

  • metadata_storage_path (Edm.String) — pełny identyfikator URI obiektu blob, w tym konto magazynu. Na przykład https://myaccount.blob.core.windows.net/my-container/my-folder/subfolder/resume.pdf

  • metadata_storage_content_type (Edm.String) — typ zawartości określony przez kod użyty do przekazania obiektu blob. Na przykład application/octet-stream.

  • metadata_storage_last_modified (Edm.DateTimeOffset) — znacznik czasu ostatniej modyfikacji obiektu blob. Usługa Azure AI Search używa tego znacznika czasu do identyfikowania zmienionych obiektów blob, aby uniknąć ponownego indeksowania wszystkiego po początkowym indeksowaniu.

  • metadata_storage_size (Edm.Int64) — rozmiar obiektu blob w bajtach.

  • metadata_storage_content_md5 (Edm.String) — skrót MD5 zawartości obiektu blob, jeśli jest dostępny.

  • metadata_storage_sas_token (Edm.String) — tymczasowy token SAS, który może być używany przez umiejętności niestandardowe w celu uzyskania dostępu do obiektu blob. Ten token nie powinien być przechowywany do późniejszego użycia, ponieważ może wygasnąć.

Na koniec wszystkie właściwości metadanych specyficzne dla formatu dokumentu obiektów blob, które indeksujesz, mogą być również reprezentowane w schemacie indeksu. Aby uzyskać więcej informacji na temat metadanych specyficznych dla zawartości, zobacz Właściwości metadanych zawartości.

Ważne jest, aby podkreślić, że nie musisz definiować pól dla wszystkich powyższych właściwości w indeksie wyszukiwania — po prostu przechwyć właściwości potrzebne dla aplikacji.

Obecnie indeksowanie tagów indeksu obiektów blob nie jest obsługiwane przez ten indeksator.

Definiowanie źródła danych

Definicja źródła danych określa dane do indeksowania, poświadczeń i zasad identyfikowania zmian w danych. Źródło danych jest definiowane jako niezależny zasób, dzięki czemu może być używane przez wiele indeksatorów.

  1. Utwórz lub zaktualizuj źródło danych, aby ustawić jego definicję:

    {
        "name" : "my-blob-datasource",
        "type" : "azureblob",
        "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
        "container" : { "name" : "my-container", "query" : "<optional-virtual-directory-name>" }
    }
    
  2. Ustaw wartość "type" na "azureblob" (wymagane).

  3. Ustaw wartość "credentials" na parametry połączenia usługi Azure Storage. W następnej sekcji opisano obsługiwane formaty.

  4. Ustaw wartość "container" na kontener obiektów blob i użyj polecenia "query", aby określić wszystkie podfoldery.

Definicja źródła danych może również obejmować zasady usuwania nietrwałego, jeśli indeksator ma usunąć dokument wyszukiwania, gdy dokument źródłowy jest oflagowany do usunięcia.

Obsługiwane poświadczenia i parametry połączenia

Indeksatory mogą łączyć się z kontenerem obiektów blob przy użyciu następujących połączeń.

Pełny dostęp do konta magazynu parametry połączenia
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" }
Parametry połączenia można uzyskać na stronie Konto magazynu w witrynie Azure Portal, wybierając pozycję Klucze dostępu w okienku nawigacji po lewej stronie. Pamiętaj, aby wybrać pełny parametry połączenia, a nie tylko klucz.
Parametry połączenia tożsamości zarządzanej
{ "connectionString" : "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;" }
Ta parametry połączenia nie wymaga klucza konta, ale musisz wcześniej skonfigurować usługę wyszukiwania w celu nawiązania połączenia przy użyciu tożsamości zarządzanej.
Sygnatura dostępu współdzielonego konta magazynu** (SAS) parametry połączenia
{ "connectionString" : "BlobEndpoint=https://<your account>.blob.core.windows.net/;SharedAccessSignature=?sv=2016-05-31&sig=<the signature>&spr=https&se=<the validity end time>&srt=co&ss=b&sp=rl;" }
Sygnatura dostępu współdzielonego powinna mieć uprawnienia do odczytu i listy kontenerów i obiektów (w tym przypadku obiektów blob).
Sygnatura dostępu współdzielonego kontenera
{ "connectionString" : "ContainerSharedAccessUri=https://<your storage account>.blob.core.windows.net/<container name>?sv=2016-05-31&sr=c&sig=<the signature>&se=<the validity end time>&sp=rl;" }
Sygnatura dostępu współdzielonego powinna mieć uprawnienia do odczytu i listy w kontenerze. Aby uzyskać więcej informacji, zobacz Using Shared Access Signatures (Używanie sygnatur dostępu współdzielonego).

Uwaga

Jeśli używasz poświadczeń sygnatury dostępu współdzielonego, należy okresowo aktualizować poświadczenia źródła danych przy użyciu odnowionych podpisów, aby zapobiec ich wygaśnięciu. Jeśli poświadczenia sygnatury dostępu współdzielonego wygaśnie, indeksator zakończy się niepowodzeniem z komunikatem o błędzie podobnym do "Poświadczenia podane w parametry połączenia są nieprawidłowe lub wygasły".

Dodawanie pól wyszukiwania do indeksu

W indeksie wyszukiwania dodaj pola, aby zaakceptować zawartość i metadane obiektów blob platformy Azure.

  1. Utwórz lub zaktualizuj indeks , aby zdefiniować pola wyszukiwania, które będą przechowywać zawartość i metadane obiektów blob:

    POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
    {
        "name" : "my-search-index",
        "fields": [
            { "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
            { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false },
            { "name": "metadata_storage_name", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true  },
            { "name": "metadata_storage_size", "type": "Edm.Int64", "searchable": false, "filterable": true, "sortable": true  },
            { "name": "metadata_storage_content_type", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },        
        ]
    }
    
  2. Utwórz pole klucza dokumentu ("key": true). W przypadku zawartości obiektu blob najlepszymi kandydatami są właściwości metadanych.

    • metadata_storage_path (ustawienie domyślne) pełna ścieżka do obiektu lub pliku. Pole klucza ("ID" w tym przykładzie) zostanie wypełnione wartościami z metadata_storage_path, ponieważ jest to ustawienie domyślne.

    • metadata_storage_name, można używać tylko wtedy, gdy nazwy są unikatowe. Jeśli chcesz, aby to pole było kluczem, przejdź "key": true do tej definicji pola.

    • Niestandardowa właściwość metadanych dodana do obiektów blob. Ta opcja wymaga, aby proces przekazywania obiektów blob dodaje tę właściwość metadanych do wszystkich obiektów blob. Ponieważ klucz jest wymaganą właściwością, wszystkie obiekty blob, których brakuje wartości, nie będą indeksowane. Jeśli używasz niestandardowej właściwości metadanych jako klucza, unikaj wprowadzania zmian w tej właściwości. Indeksatory dodają zduplikowane dokumenty dla tego samego obiektu blob, jeśli właściwość klucza ulegnie zmianie.

    Właściwości metadanych często zawierają znaki, takie jak / i -, które są nieprawidłowe dla kluczy dokumentów. Jednak indeksator automatycznie koduje właściwość metadanych klucza bez wymaganego mapowania konfiguracji ani pola.

  3. Dodaj pole "content", aby przechowywać wyodrębniony tekst z każdego pliku za pomocą właściwości "content" obiektu blob. Nie musisz używać tej nazwy, ale umożliwia to korzystanie z niejawnych mapowań pól.

  4. Dodaj pola dla standardowych właściwości metadanych. Indeksator może odczytywać właściwości metadanych niestandardowych, właściwości standardowych metadanych i właściwości metadanych specyficznych dla zawartości.

Konfigurowanie i uruchamianie indeksatora obiektów blob

Po utworzeniu indeksu i źródła danych możesz utworzyć indeksator. Konfiguracja indeksatora określa dane wejściowe, parametry i właściwości kontrolujące zachowania czasu wykonywania. Można również określić, które części obiektu blob mają być indeksować.

  1. Utwórz lub zaktualizuj indeksator , podając mu nazwę i odwołując się do źródła danych i indeksu docelowego:

    POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
    {
      "name" : "my-blob-indexer",
      "dataSourceName" : "my-blob-datasource",
      "targetIndexName" : "my-search-index",
      "parameters": {
          "batchSize": null,
          "maxFailedItems": null,
          "maxFailedItemsPerBatch": null,
          "configuration": {
              "indexedFileNameExtensions" : ".pdf,.docx",
              "excludedFileNameExtensions" : ".png,.jpeg",
              "dataToExtract": "contentAndMetadata",
              "parsingMode": "default"
          }
      },
      "schedule" : { },
      "fieldMappings" : [ ]
    }
    
  2. Ustaw batchSize , czy wartość domyślna (10 dokumentów) jest niewystarczająca lub przytłaczająca dostępne zasoby. Domyślne rozmiary partii są specyficzne dla źródła danych. Indeksowanie obiektów blob ustawia rozmiar partii na 10 dokumentów w rozpoznawaniu większego średniego rozmiaru dokumentu.

  3. W obszarze "konfiguracja" kontroluj, które obiekty blob są indeksowane na podstawie typu pliku, lub pozostaw nieokreślone, aby pobrać wszystkie obiekty blob.

    W przypadku "indexedFileNameExtensions"programu podaj rozdzielaną przecinkami listę rozszerzeń plików (z kropką wiodącą). Wykonaj to samo dla "excludedFileNameExtensions" polecenia , aby wskazać, które rozszerzenia powinny zostać pominięte. Jeśli to samo rozszerzenie znajduje się na obu listach, zostanie wykluczone z indeksowania.

  4. W obszarze "configuration" ustaw wartość "dataToExtract", aby kontrolować, które części obiektów blob są indeksowane:

    • "contentAndMetadata" określa, że wszystkie metadane i zawartość tekstowa wyodrębniona z obiektu blob są indeksowane. Jest to wartość domyślna.

    • "storageMetadata" określa, że indeksowane są tylko standardowe właściwości obiektu blob i metadane określone przez użytkownika.

    • "allMetadata" określa, że standardowe właściwości obiektu blob i wszelkie metadane dla znalezionych typów zawartości są wyodrębniane z zawartości i indeksowania obiektu blob.

  5. W obszarze "konfiguracja" ustaw wartość "parsingMode". Domyślny tryb analizowania to jeden dokument wyszukiwania na obiekt blob. Jeśli obiekty blob są zwykłym tekstem, możesz uzyskać lepszą wydajność, przełączając się na analizowanie zwykłego tekstu . Jeśli potrzebujesz bardziej szczegółowego analizowania mapowanego obiektów blob na wiele dokumentów wyszukiwania, określ inny tryb. Analizowanie jeden do wielu jest obsługiwane w przypadku obiektów blob składających się z:

  6. Określ mapowania pól, jeśli istnieją różnice w nazwie lub typie pola lub jeśli potrzebujesz wielu wersji pola źródłowego w indeksie wyszukiwania.

    W indeksowaniu obiektów blob często można pominąć mapowania pól, ponieważ indeksator ma wbudowaną obsługę mapowania właściwości "zawartości" i metadanych na podobnie nazwane i wpisane pola w indeksie. W przypadku właściwości metadanych indeksator automatycznie zastąpi łączniki - podkreśleniami w indeksie wyszukiwania.

  7. Aby uzyskać więcej informacji na temat innych właściwości, zobacz Tworzenie indeksatora . Aby uzyskać pełną listę opisów parametrów, zobacz interfejs API REST.

Indeksator jest uruchamiany automatycznie po jego utworzeniu. Możesz temu zapobiec, ustawiając wartość "disabled" na true. Aby kontrolować wykonywanie indeksatora, uruchom indeksator na żądanie lub umieść go zgodnie z harmonogramem.

Indeksowanie danych z wielu kontenerów obiektów blob platformy Azure do pojedynczego indeksu

Należy pamiętać, że indeksator może indeksować tylko dane z jednego kontenera. Jeśli wymagane jest indeksowanie danych z wielu kontenerów i skonsolidowanie ich w jeden indeks wyszukiwania sztucznej inteligencji, można to osiągnąć, konfigurując wiele indeksatorów, a wszystkie kierowane do tego samego indeksu. Należy pamiętać o maksymalnej liczbie indeksatorów dostępnych dla jednostki SKU.

Aby zilustrować, rozważmy przykład dwóch indeksatorów, ściągając dane z dwóch różnych źródeł danych o nazwach my-blob-datasource1 i my-blob-datasource2. Każde źródło danych wskazuje oddzielny kontener obiektów blob platformy Azure, ale zarówno bezpośrednio do tego samego indeksu o nazwie my-search-index.

Przykład pierwszej definicji indeksatora:

POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{
  "name" : "my-blob-indexer1",
  "dataSourceName" : "my-blob-datasource1",
  "targetIndexName" : "my-search-index",
  "parameters": {
      "batchSize": null,
      "maxFailedItems": null,
      "maxFailedItemsPerBatch": null,
      "configuration": {
          "indexedFileNameExtensions" : ".pdf,.docx",
          "excludedFileNameExtensions" : ".png,.jpeg",
          "dataToExtract": "contentAndMetadata",
          "parsingMode": "default"
      }
  },
  "schedule" : { },
  "fieldMappings" : [ ]
}

Druga definicja indeksatora uruchamiana równolegle:

POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{
  "name" : "my-blob-indexer2",
  "dataSourceName" : "my-blob-datasource2",
  "targetIndexName" : "my-search-index",
  "parameters": {
      "batchSize": null,
      "maxFailedItems": null,
      "maxFailedItemsPerBatch": null,
      "configuration": {
          "indexedFileNameExtensions" : ".pdf,.docx",
          "excludedFileNameExtensions" : ".png,.jpeg",
          "dataToExtract": "contentAndMetadata",
          "parsingMode": "default"
      }
  },
  "schedule" : { },
  "fieldMappings" : [ ]
}

Sprawdzanie stanu indeksatora

Aby monitorować stan indeksatora i historię wykonywania, wyślij żądanie pobierz stan indeksatora:

GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
  Content-Type: application/json  
  api-key: [admin key]

Odpowiedź zawiera stan i liczbę przetworzonych elementów. Powinien on wyglądać podobnie do poniższego przykładu:

    {
        "status":"running",
        "lastResult": {
            "status":"success",
            "errorMessage":null,
            "startTime":"2022-02-21T00:23:24.957Z",
            "endTime":"2022-02-21T00:36:47.752Z",
            "errors":[],
            "itemsProcessed":1599501,
            "itemsFailed":0,
            "initialTrackingState":null,
            "finalTrackingState":null
        },
        "executionHistory":
        [
            {
                "status":"success",
                "errorMessage":null,
                "startTime":"2022-02-21T00:23:24.957Z",
                "endTime":"2022-02-21T00:36:47.752Z",
                "errors":[],
                "itemsProcessed":1599501,
                "itemsFailed":0,
                "initialTrackingState":null,
                "finalTrackingState":null
            },
            ... earlier history items
        ]
    }

Historia wykonywania zawiera do 50 ostatnio wykonanych wykonań, które są sortowane w odwrotnej kolejności chronologicznej, tak aby najnowsze wykonanie było wykonywane jako pierwsze.

Obsługa błędów

Błędy, które często występują podczas indeksowania, obejmują nieobsługiwane typy zawartości, brak zawartości lub nadmierne obiekty blob.

Domyślnie indeksator obiektów blob zatrzymuje się zaraz po napotkaniu obiektu blob z nieobsługiwanym typem zawartości (na przykład plikiem audio). Aby pominąć niektóre typy zawartości, można użyć parametru "excludedFileNameExtensions". Jednak indeksowanie może być konieczne, aby kontynuować nawet wtedy, gdy wystąpią błędy, a następnie debugować poszczególne dokumenty później. Aby uzyskać więcej informacji na temat błędów indeksatora, zobacz Wskazówki dotyczące rozwiązywania problemów z indeksatorem i błędy i ostrzeżenia indeksatora.

Istnieje pięć właściwości indeksatora, które kontrolują odpowiedź indeksatora w przypadku wystąpienia błędów.

PUT /indexers/[indexer name]?api-version=2024-07-01
{
  "parameters" : { 
    "maxFailedItems" : 10, 
    "maxFailedItemsPerBatch" : 10,
    "configuration" : { 
        "failOnUnsupportedContentType" : false, 
        "failOnUnprocessableDocument" : false,
        "indexStorageMetadataOnlyForOversizedDocuments": false
      }
    }
}
Parametr Prawidłowe wartości opis
"maxFailedItems" -1, null lub 0, dodatnia liczba całkowita Kontynuuj indeksowanie, jeśli błędy występują w dowolnym momencie przetwarzania, podczas analizowania obiektów blob lub podczas dodawania dokumentów do indeksu. Ustaw te właściwości na liczbę dopuszczalnych niepowodzeń. Wartość -1 umożliwia przetwarzanie bez względu na liczbę błędów. W przeciwnym razie wartość jest dodatnią liczbą całkowitą.
"maxFailedItemsPerBatch" -1, null lub 0, dodatnia liczba całkowita Tak samo jak powyżej, ale używany do indeksowania wsadowego.
"failOnUnsupportedContentType" prawda lub fałsz Jeśli indeksator nie może określić typu zawartości, określ, czy kontynuować, czy nie wykonać zadania.
"failOnUnprocessableDocument" prawda lub fałsz Jeśli indeksator nie może przetworzyć dokumentu innego obsługiwanego typu zawartości, określ, czy kontynuować, czy nie wykonać zadania.
"indexStorageMetadataOnlyForOversizedDocuments" prawda lub fałsz Oversized blobs są domyślnie traktowane jako błędy. Jeśli ustawisz ten parametr na wartość true, indeksator spróbuje zaindeksować jego metadane, nawet jeśli nie można indeksować zawartości. Aby uzyskać informacje o limitach dotyczących rozmiaru obiektu blob, zobacz Limity usługi.

Zobacz też