Indeksowanie danych z usługi Azure Files

Ważne

Indeksator usługi Azure Files jest obecnie w publicznej wersji zapoznawczej w obszarze Uzupełniające warunki użytkowania. Użyj interfejsu API REST w wersji zapoznawczej (2020-06-30-preview lub nowszego), aby utworzyć źródło danych indeksatora.

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

Ten artykuł uzupełnia tworzenie indeksatora z informacjami specyficznymi dla indeksowania plików w usłudze Azure Storage. Używa ona interfejsów API REST, aby zademonstrować trzyczęściowy przepływ pracy wspólny dla wszystkich indeksatorów: tworzenie źródła danych, tworzenie indeksu, tworzenie indeksatora. Wyodrębnianie danych odbywa się podczas przesyłania żądania Tworzenia indeksatora.

Wymagania wstępne

  • Azure Files, warstwa zoptymalizowana pod kątem transakcji.

  • Udział plików SMB dostarczający zawartość źródłową. Udziały NFS nie są obsługiwane.

  • Pliki zawierające tekst. Jeśli masz dane binarne, możesz uwzględnić wzbogacanie sztucznej inteligencji na potrzeby analizy obrazów.

  • Uprawnienia do odczytu w usłudze Azure Storage. Parametry połączenia "pełny dostęp" zawiera klucz, który udziela dostępu do zawartości.

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

Obsługiwane formaty dokumentów

Indeksator usługi Azure Files 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

Jak są indeksowane usługi Azure Files

Domyślnie większość plików jest indeksowana jako pojedynczy dokument wyszukiwania w indeksie, w tym pliki z zawartością ustrukturyzowaną, taką jak JSON lub CSV, które są indeksowane jako pojedynczy fragment tekstu.

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.

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ę przy użyciu interfejsu API w wersji zapoznawczej 2020-06-30-Preview lub nowszej dla opcji "type": "azurefile".

    {
        "name" : "my-file-datasource",
        "type" : "azurefile",
        "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
        "container" : { "name" : "my-file-share", "query" : "<optional-directory-name>" }
    }
    
  2. Ustaw wartość "type" na "azurefile" (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 główny udział plików 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 udziałem plików 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.

Dodawanie pól wyszukiwania do indeksu

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

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

    POST /indexes?api-version=2020-06-30
    {
      "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_path", "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": true, "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. Właściwości metadanych często zawierają znaki, takie jak / i -, które są nieprawidłowe dla kluczy dokumentów. Ponieważ indeksator ma właściwość "base64EncodeKeys" (prawda domyślnie), automatycznie koduje właściwość metadanych bez wymaganej konfiguracji ani mapowania pól.

    • metadata_storage_path (ustawienie domyślne) pełna ścieżka do obiektu lub pliku

    • metadata_storage_name można używać tylko wtedy, gdy nazwy są unikatowe

    • 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.

  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. W indeksowaniu plików standardowe właściwości metadanych są takie same jak właściwości metadanych obiektu blob. Indeksator usługi Azure Files automatycznie tworzy wewnętrzne mapowania pól dla tych właściwości, które konwertują nazwy właściwości rozdzielonych wyrazami na nazwy właściwości podkreślonych. Nadal musisz dodać pola, które chcesz użyć definicji indeksu, ale możesz pominąć tworzenie mapowań pól w źródle danych.

    • metadata_storage_name (Edm.String) — nazwa pliku. Jeśli na przykład masz plik /my-share/my-folder/subfolder/resume.pdf, wartość tego pola to resume.pdf.
    • metadata_storage_path (Edm.String) — pełny identyfikator URI pliku, w tym konto magazynu. Na przykład https://myaccount.file.core.windows.net/my-share/my-folder/subfolder/resume.pdf
    • metadata_storage_content_type (Edm.String) — typ zawartości określony przez kod użyty do przekazania pliku. Na przykład application/octet-stream.
    • metadata_storage_last_modified (Edm.DateTimeOffset) — znacznik czasu ostatniej modyfikacji pliku. Usługa Azure AI Search używa tego znacznika czasu do identyfikowania zmienionych plików, aby uniknąć ponownego indeksowania wszystkiego po początkowym indeksowaniu.
    • metadata_storage_size (Edm.Int64) — rozmiar pliku w bajtach.
    • metadata_storage_content_md5 (Edm.String) — skrót MD5 zawartości pliku, 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 pliku. Ten token nie powinien być przechowywany do późniejszego użycia, ponieważ może wygasnąć.

Konfigurowanie i uruchamianie indeksatora usługi Azure Files

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.

  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=2020-06-30
    {
      "name" : "my-file-indexer",
      "dataSourceName" : "my-file-datasource",
      "targetIndexName" : "my-search-index",
      "parameters": {
         "batchSize": null,
         "maxFailedItems": null,
         "maxFailedItemsPerBatch": null,
         "base64EncodeKeys": null,
         "configuration": {
            "indexedFileNameExtensions" : ".pdf,.docx",
            "excludedFileNameExtensions" : ".png,.jpeg" 
        }
      },
      "schedule" : { },
      "fieldMappings" : [ ]
    }
    
  2. W opcjonalnej sekcji "konfiguracja" podaj wszystkie kryteria dołączania lub wykluczania. Jeśli plik pozostanie nieokreślony, zostaną pobrane wszystkie pliki w udziale plików.

    Jeśli oba indexedFileNameExtensions parametry i excludedFileNameExtensions są obecne, usługa Azure AI Search najpierw sprawdza wartość , a następnie pod indexedFileNameExtensionsexcludedFileNameExtensionsadresem . Jeśli to samo rozszerzenie pliku znajduje się na obu listach, zostanie wykluczone z indeksowania.

  3. 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 plików 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.

  4. Aby uzyskać więcej informacji na temat innych właściwości, zobacz Tworzenie indeksatora .

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.

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=2020-06-30
  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.

Następne kroki

Teraz możesz uruchomić indeksator, monitorować stan lub zaplanować wykonywanie indeksatora. Następujące artykuły dotyczą indeksatorów, które ściągają zawartość z usługi Azure Storage: