搜尋Azure Blob 儲存體內容

搜尋儲存在 Azure Blob 儲存體 的各種內容類型可能很困難,但Azure 認知搜尋提供內容層的深入整合、擷取和推斷文字資訊,然後可在搜尋索引中查詢。

在本文中,請檢閱從 Blob 擷取內容和中繼資料的基本工作流程,並將它傳送至Azure 認知搜尋中的搜尋索引。 您可以使用全文檢索搜尋來查詢產生的索引。 您可以選擇性地將已處理的 Blob 內容傳送至 知識存放區 ,以進行非搜尋案例。

注意

已經熟悉工作流程和組合嗎? 設定 Blob 索引子 是下一個步驟。

將全文檢索搜尋新增至 Blob 資料的意義

Azure 認知搜尋是獨立搜尋服務,可透過使用者定義的索引支援索引編制和查詢工作負載,其中包含裝載在雲端中的遠端可搜尋內容。 使用查詢引擎共置可搜尋的內容是必要的,才能達到效能,以使用者預期來自搜尋查詢的速度傳回結果。

認知搜尋會與索引層的Azure Blob 儲存體整合,將 Blob 內容匯入為已編制索引的搜尋檔,以及支援自由格式文字查詢和篩選運算式的其他查詢結構。 因為 Blob 內容會編制索引到搜尋索引中,所以您可以使用 Azure 認知搜尋 中的完整查詢功能來尋找 Blob 內容中的資訊。

輸入是 Blob,在單一容器中,Azure Blob 儲存體。 Blob 幾乎可以是任何類型的文字資料。 如果您的 Blob 包含影像,您可以新增 AI 擴充 ,以建立和擷取影像中的文字。

輸出一律是 Azure 認知搜尋索引,用於在用戶端應用程式中進行快速文字搜尋、擷取及探索。 介於兩者之間的是索引編製管線結構本身。 管線是以「索引子」功能為基礎,這會在此文章中進一步討論。

建立並填入索引之後,它就會與 Blob 容器無關,但您可以重新執行索引作業,以根據變更的檔重新整理索引。 個別 Blob 的時間戳記資訊會用於變更偵測。 您可以選擇排程執行或隨選索引編製作為重新整理機制。

Blob 搜尋解決方案中使用的資源

您需要Azure 認知搜尋、Azure Blob 儲存體和用戶端。 認知搜尋通常是解決方案中數個元件的其中一個,其中您的應用程式程式碼會發出查詢 API 要求並處理回應。 您也可以撰寫應用程式程式碼來處理索引編制,雖然針對概念證明測試和模擬工作,但通常會使用 Azure 入口網站 作為搜尋用戶端。

在 Blob 儲存體內,您將需要提供來源內容的容器。 您可以設定檔案包含和排除準則,並在認知搜尋中指定 Blob 的哪些部分編制索引。

您可以直接在儲存體帳戶入口網站頁面中啟動。

  1. 在 [ 資料管理] 下方的左側流覽頁面中,選取 [Azure 搜尋 ] 以選取或建立搜尋服務。

  2. 請遵循精靈中的步驟,從 Blob 擷取並選擇性地建立可搜尋的內容。 工作流程是匯入 資料 精靈

    Screenshot of the Azure search wizard in the Azure Storage portal page.

  3. 使用搜尋入口網站頁面中的 [搜尋 總管] 來查詢您的內容。

精靈是開始的最佳位置,但當您自行 設定 Blob 索引子 時,您將探索更具彈性的選項。 您可以使用 Postman 或 Visual Studio Code 之類的工具呼叫 REST API。 教學課程:在 Azure 認知搜尋 中 (JSON) blob (索引和搜尋半結構化資料會逐步引導您在 Postman 中呼叫 REST API 的步驟。

如何編制 Blob 的索引

根據預設,大部分的 Blob 會編制索引為索引中的單一搜尋檔,包括具有結構化內容的 Blob,例如 JSON 或 CSV,其會編制為單一文字區塊的索引。 不過,對於具有內部結構的 JSON 或 CSV 檔, (分隔符號) ,您可以指派剖析模式來為每個行或專案產生個別搜尋檔:

複合或內嵌檔 (例如 ZIP 封存、內嵌Outlook電子郵件包含附件的 Word 檔,或 。具有附件) 的 MSG 檔案也會編制為單一檔索引。 例如,從 的附件擷取的所有影像。MSG 檔案會在 [normalized_images] 欄位中傳回。 如果您有影像,請考慮新增 AI 擴充 ,以從該內容取得更多搜尋公用程式。

檔的文字內容會擷取至名為 「content」 的字串欄位。 您也可以擷取標準和使用者定義的中繼資料。

注意

Azure 認知搜尋會根據定價層對其擷取的文字量施加索引子限制。 如果檔遭到截斷,索引子狀態回應中會出現警告。

使用 Blob 索引子進行內容擷取

索引子是認知搜尋中的資料來源感知子服務,具備取樣資料的內部邏輯、讀取中繼資料資料、擷取資料,以及將資料從原生格式序列化為 JSON 檔以供後續匯入。

Azure 儲存體中的 Blob 會使用Blob 索引子編制索引。 您可以使用 Azure 儲存體、匯入資料精靈、REST API 或 .NET SDK 中的Azure 搜尋命令叫用此索引子。 在程式碼中,您可以藉由設定類型,以及提供包含 Azure 儲存體帳戶和 Blob 容器的連線資訊,來使用此索引子。 您可以藉由建立虛擬目錄來將 Blob 子集化,然後將其當作參數傳遞,或藉由篩選檔案類型副檔名來進行。

索引子 「破解檔」,開啟 Blob 以檢查內容。 連線到資料來源之後,其就是管線中的第一個步驟。 對於 Blob 資料,這是偵測到 PDF、Office檔和其他內容類型的位置。 使用文字擷取的文件破解是免費的。 如果您的 Blob 包含影像內容,除非您新增 AI 擴充,否則系統會忽略影像。 標準索引僅適用于文字內容。

Blob 索引子隨附設定參數,如果底層資料提供足夠的資訊,則支援變更追蹤。 您可以在 Blob 索引子中深入瞭解核心功能。

支援的存取層

Blob 儲存體 存取層 包括經常性存取層、非經常性存取層和封存層。 索引子只能存取經常性存取和非經常性存取。

支援的內容類型

藉由在容器上執行 Blob 索引子,您可以使用單一查詢從下列內容類型中擷取文字和中繼資料:

  • CSV (請參閱 索引 CSV Blob)
  • EML
  • EPUB
  • 廣州
  • HTML
  • JSON (請參閱編製 JSON Blob 的索引)
  • 地理標記法的 KML (XML)
  • Microsoft Office格式:DOCX/DOC/DOCM、XLSX/XLS/XLSM、PPTX/PPT/PPTM、MSG (Outlook電子郵件) 、XML (2003 和 2006 WORD XML)
  • 開啟檔案格式:ODT、ODS、ODP
  • PDF
  • 純文字檔案 (另請參閱編制純文字的索引)
  • RTF
  • XML
  • ZIP

控制要編製哪些 blob 的索引

您可以透過 Blob 的檔案類型或設定 Blob 本身的屬性,控制哪些 Blob 已編制索引,以及略過哪些 Blob,導致索引子略過它們。

藉由將 設定 "indexedFileNameExtensions" 為以逗號分隔的副檔名清單, (加上前置點) ,以包含特定副檔名。 將 設定 "excludedFileNameExtensions" 為應該略過的副檔名,以排除特定副檔名。 如果這兩個清單中都有相同的延伸模組,則會從索引編制中排除。

PUT /indexers/[indexer name]?api-version=2020-06-30
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

新增 Blob 的「略過」中繼資料

索引子組態參數會套用至容器或資料夾中的所有 Blob。 有時候,您想要控制 個別 Blob 的編制索引方式。

將下列中繼資料屬性和值新增至 Blob 儲存體中的 Blob。 當索引子遇到這個屬性時,它會略過索引執行中的 Blob 或其內容。

屬性名稱 屬性值 說明
「AzureSearch_Skip」 "true" 指示 blob 索引子以完全略過 blob。 不會嘗試擷取中繼資料或內容。 當特定 blob 一直失敗,並且中斷編製索引程序時,這非常有用。
「AzureSearch_SkipContent」 "true" 這相當於 "dataToExtract" : "allMetadata"上述 設定的範圍設定為特定 Blob。

編製 Blob 中繼資料的索引

一個常見的案例,可讓您輕鬆地排序任何內容類型的 Blob,就是為每個 Blob 編制 自訂中繼資料和系統屬性的索引 。 如此一來,不論是什麼文件類型,所有 Blob 的資訊都會編製成索引,儲存在搜尋服務的索引中。 使用您的新索引,接著便可以跨所有 Blob 儲存體的內容,進行排序、篩選、Facet。

注意

Blob 索引標籤是由 Blob 儲存體服務以原生方式編製索引,而且會針對查詢而公開。 如果您的 Blob 機碼/值屬性需要索引編製和篩選功能,則應利用 Blob 索引標籤,而不是中繼資料。

若要深入了解 Blob 索引,請參閱使用 Blob 索引來管理及尋找 Azure Blob 儲存體上的資料

搜尋搜尋索引中的 Blob 內容

索引子的輸出是搜尋索引,用於在用戶端應用程式中使用自由文字和篩選的查詢進行互動式探索。 若要進行內容的初始探索和驗證,建議您從入口網站中的搜尋總管開始檢查文件結構。 在 [搜尋總管] 中,您可以使用:

更永久的解決方案是收集查詢輸入,並在用戶端應用程式中將回應呈現為搜尋結果。 下列 C# 教學課程說明如何建立搜尋應用程式:在 Azure 認知搜尋中建立您的第一個應用程式

後續步驟