Indexování dat ze služby Azure Files

Důležité

Indexer služby Azure Files je v současné době ve verzi Public Preview v rámci dodatečných podmínek použití. K vytvoření zdroje dat indexeru použijte rozhraní REST API verze Preview (2020-06-30-preview nebo novější).

V tomto článku se dozvíte, jak nakonfigurovat indexer , který importuje obsah ze služby Azure Files a umožňuje vyhledávání ve službě Azure AI Search. Vstupy indexeru jsou vaše soubory v jedné sdílené složce. Výstup je index vyhledávání s prohledávatelným obsahem a metadaty uloženými v jednotlivých polích.

Tento článek doplňuje vytvoření indexeru s informacemi, které jsou specifické pro indexování souborů ve službě Azure Storage. Pomocí rozhraní REST API demonstruje třídílný pracovní postup společný pro všechny indexery: vytvoření zdroje dat, vytvoření indexeru a vytvoření indexeru. Extrakce dat nastane, když odešlete požadavek Create Indexer.

Požadavky

  • Azure Files, úroveň Optimalizovaná pro transakce

  • Sdílená složka SMB poskytující zdrojový obsah. Sdílené složky NFS nejsou podporovány.

  • Soubory obsahující text. Pokud máte binární data, můžete zahrnout rozšiřování AI pro analýzu obrázků.

  • Oprávnění ke čtení ve službě Azure Storage Úplný přístup připojovací řetězec obsahuje klíč, který uděluje přístup k obsahu.

  • Pomocí klienta REST formulujte volání REST podobně jako volání, která jsou uvedená v tomto článku.

Podporované formáty dokumentů

Indexer služby Azure Files dokáže extrahovat text z následujících formátů dokumentů:

  • CSV (viz indexování objektů blob CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (viz indexování objektů blob JSON)
  • KML (XML pro geografické reprezentace)
  • formáty systém Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPTM, MSG (e-maily Outlooku), XML (2003 i 2006 WORD XML)
  • Formáty otevřených dokumentů: ODT, ODS, ODP
  • PDF
  • Soubory ve formátu prostého textu (viz také indexování prostého textu)
  • RTF
  • XML
  • ZIP

Jak se soubory Azure indexují

Ve výchozím nastavení se většina souborů indexuje jako jeden vyhledávací dokument v indexu, včetně souborů se strukturovaným obsahem, jako je JSON nebo CSV, které se indexují jako jeden blok textu.

Složený nebo vložený dokument (například archiv ZIP, wordový dokument s vloženým outlookovým e-mailem obsahujícím přílohy nebo přílohy. Soubor MSG s přílohami) je také indexován jako jeden dokument. Například všechny obrázky extrahované z přílohy objektu . Soubor MSG bude vrácen v poli normalized_images. Pokud máte obrázky, zvažte přidání rozšíření AI, abyste z tohoto obsahu získali další vyhledávací nástroj.

Textový obsah dokumentu se extrahuje do textového pole s názvem "content". Můžete také extrahovat standardní a uživatelsky definovaná metadata.

Definování zdroje dat

Definice zdroje dat určuje data, která se mají indexovat, přihlašovací údaje a zásady pro identifikaci změn v datech. Zdroj dat je definován jako nezávislý prostředek, aby ho mohl používat více indexerů.

  1. Vytvořte nebo aktualizujte zdroj dat pro nastavení jeho definice pomocí rozhraní API verze Preview 2020-06-30-Preview nebo novější pro typ: "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. Nastavte "typ" na "azurefile" (povinné).

  3. Nastavte přihlašovací údaje na připojovací řetězec služby Azure Storage. Následující část popisuje podporované formáty.

  4. Nastavte "kontejner" na kořenovou sdílenou složku a pomocí příkazu "query" zadejte všechny podsložky.

Definice zdroje dat může také zahrnovat zásady obnovitelného odstranění, pokud chcete, aby indexer odstranil vyhledávací dokument, když je zdrojový dokument označen příznakem pro odstranění.

Podporované přihlašovací údaje a připojovací řetězec

Indexery se můžou připojit ke sdílené složce pomocí následujících připojení.

Připojovací řetězec účtu úložiště s úplným přístupem
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" }
Připojovací řetězec můžete získat ze stránky účtu úložiště na webu Azure Portal výběrem přístupových klíčů v levém navigačním podokně. Nezapomeňte vybrat úplný připojovací řetězec a ne jenom klíč.

Přidání vyhledávacích polí do indexu

Do indexu vyhledávání přidejte pole pro příjem obsahu a metadat souborů Azure.

  1. Vytvořte nebo aktualizujte index a definujte vyhledávací pole, která budou ukládat obsah a metadata souboru:

    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. Vytvoření pole klíče dokumentu ("key": true) Nejlepšími kandidáty pro obsah objektů blob jsou vlastnosti metadat. Vlastnosti metadat často obsahují znaky, například / a -, které jsou neplatné pro klíče dokumentu. Protože indexer má vlastnost base64EncodeKeys (true ve výchozím nastavení), automaticky kóduje vlastnost metadat bez nutnosti konfigurace nebo mapování polí.

    • metadata_storage_path (výchozí) úplná cesta k objektu nebo souboru

    • metadata_storage_name použitelné pouze v případě, že jsou názvy jedinečné

    • Vlastní vlastnost metadat, kterou přidáte do objektů blob. Tato možnost vyžaduje, aby proces nahrání objektu blob přidal tuto vlastnost metadat do všech objektů blob. Vzhledem k tomu, že klíč je požadovaná vlastnost, všechny objekty blob, které chybí, nebudou indexovány. Pokud jako klíč použijete vlastní vlastnost metadat, vyhněte se změnám této vlastnosti. Indexery při změně klíčové vlastnosti přidají duplicitní dokumenty pro stejný objekt blob.

  3. Přidejte pole "content" pro uložení extrahovaného textu z každého souboru prostřednictvím vlastnosti "content" objektu blob. Tento název nemusíte používat, ale můžete tak využít implicitní mapování polí.

  4. Přidejte pole pro standardní vlastnosti metadat. Při indexování souborů jsou standardní vlastnosti metadat stejné jako vlastnosti metadat objektů blob. Indexer souborů automaticky vytvoří mapování interních polí pro tyto vlastnosti, které převádí názvy vlastností s dělením slov na názvy podtržítka vlastností. Stále musíte přidat pole, která chcete použít definici indexu, ale můžete vynechat vytváření mapování polí ve zdroji dat.

    • metadata_storage_name (Edm.String) – název souboru. Pokud máte například soubor /my-share/my-folder/podsložka/resume.pdf, hodnota tohoto pole je resume.pdf.
    • metadata_storage_path (Edm.String) – úplný identifikátor URI souboru, včetně účtu úložiště. Například https://myaccount.file.core.windows.net/my-share/my-folder/subfolder/resume.pdf
    • metadata_storage_content_type (Edm.String) – typ obsahu zadaný kódem, který jste použili k nahrání souboru. Například application/octet-stream.
    • metadata_storage_last_modified (Edm.DateTimeOffset) – časové razítko poslední změny souboru. Azure AI Search pomocí tohoto časového razítka identifikuje změněné soubory, aby se zabránilo přeindexování všeho po počátečním indexování.
    • metadata_storage_size (Edm.Int64) – velikost souboru v bajtech.
    • metadata_storage_content_md5 (Edm.String) – hodnota hash MD5 obsahu souboru, pokud je k dispozici.
    • metadata_storage_sas_token (Edm.String) – dočasný token SAS, který je možné použít vlastními dovednostmi k získání přístupu k souboru. Tento token by neměl být uložen pro pozdější použití, protože může vypršet jeho platnost.

Konfigurace a spuštění indexeru souborů

Po vytvoření indexu a zdroje dat můžete indexer vytvořit. Konfigurace indexeru určuje vstupy, parametry a vlastnosti, které řídí chování doby běhu.

  1. Vytvořte nebo aktualizujte indexer tak, že ho pojmenujte a odkazujete na zdroj dat a cílový index:

    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. V volitelné části Konfigurace zadejte všechna kritéria zahrnutí nebo vyloučení. Pokud není zadáno, všechny soubory ve sdílené složce se načtou.

    Pokud jsou k dispozici oba indexedFileNameExtensions parametry excludedFileNameExtensions , Azure AI Search se nejprve podívá na indexedFileNameExtensions, pak na adrese excludedFileNameExtensions. Pokud v obou seznamech existuje stejná přípona souboru, bude vyloučena z indexování.

  3. Určete mapování polí, pokud existují rozdíly v názvu nebo typu pole nebo pokud potřebujete v indexu vyhledávání více verzí zdrojového pole.

    Při indexování souborů můžete často vynechat mapování polí, protože indexer má integrovanou podporu mapování vlastností "obsahu" a metadat na podobně pojmenovaná a zapisovaná pole v indexu. U vlastností metadat indexer automaticky nahradí pomlčky - podtržítky v indexu vyhledávání.

  4. Další informace o dalších vlastnostech najdete v tématu Vytvoření indexeru .

Indexer se spustí automaticky při jeho vytvoření. Můžete tomu zabránit nastavením "zakázáno" na hodnotu true. Pokud chcete řídit provádění indexeru, spusťte indexer na vyžádání nebo ho umístěte do plánu.

Kontrola stavu indexeru

Pokud chcete monitorovat stav indexeru a historii spuštění, odešlete žádost o získání stavu indexeru:

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

Odpověď zahrnuje stav a počet zpracovaných položek. Měl by vypadat podobně jako v následujícím příkladu:

    {
        "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
        ]
    }

Historie provádění obsahuje až 50 naposledy dokončených spuštění, které jsou seřazeny v obráceném chronologickém pořadí tak, aby poslední spuštění bylo první.

Další kroky

Teď můžete spustit indexer, monitorovat stav nebo naplánovat spuštění indexeru. Následující články platí pro indexery, které načítá obsah ze služby Azure Storage: