搜尋 Azure Blob 儲存體內容

想要搜尋儲存在 Azure Blob 儲存體的各種內容類型可能很困難,但 Azure AI 搜尋服務可深入整合內容層、擷取和推斷文字資訊,進而在搜尋索引中以供查詢。

在本文中,請檢閱如何從 Blob 擷取內容和中繼資料,並傳送至 Azure AI 搜尋服務中搜尋索引的基本工作流程。 您可以使用全文檢索搜尋來查詢產生的索引。 針對非搜尋用途,您可以選擇將已處理的 Blob 內容傳送至知識存放區

注意

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

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

Azure AI 搜尋服務是獨立的搜尋服務,可透過使用者定義的索引支援索引編製和查詢工作負載,其中包含裝載在雲端中您私人可搜尋內容。 使用雲端中的查詢引擎共置您的可搜尋內容是效能的必要項,並以使用者所預期搜尋查詢的速度傳回結果。

Azure AI 搜尋服務會在索引層與 Azure Blob 儲存體整合,將 Blob 內容匯入編製索引為「反向索引」的搜尋文件,以及其他支援自由格式文字查詢和篩選運算式的查詢結構。 您的 Blob 內容已編製索引為搜尋索引,因此可使用 Azure AI 搜尋服務中的所有查詢功能來尋找 Blob 內容的資訊。

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

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

建立並填入索引之後,其會獨立存在於您的 Blob 容器中,但您可以重新執行索引編製作業,以根據已變更文件來重新整理索引。 個別 Blob 的時間戳記資訊會用於變更偵測。 您可以選擇排程執行或隨選索引編製作為重新整理機制。

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

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

在 Blob 儲存體中,您需要提供來源內容的容器。 您可以設定檔案包含和排除準則,並在 Azure AI 搜尋服務中指定要編製索引的 Blob 部分。

您可以在您的儲存體帳戶入口網站頁面中直接開始。

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

  2. 請遵循精靈中的步驟,擷取 Blob 並視需要建立可搜尋的內容。 工作流程是匯入資料精靈。 工作流程會在 Azure AI 搜尋服務上建立索引子、資料來源、索引和選項技能集。

    Azure 儲存體 入口網站頁面中 Azure AI 搜尋精靈的螢幕快照。

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

精靈是最佳的開始方式,但當您自行設定 Blob 索引子時,可探索更具彈性的選項。 您可以使用 REST 用戶端教學課程:索引和搜尋半結構化數據 (JSON Blob) 會逐步引導您完成呼叫 REST API 的步驟。

如何編製 Blob 的索引

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

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

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

注意

Azure AI 搜尋服務會根據定價層,將索引子限制強加至擷取的文字量。 如果文件遭到截斷,索引子狀態回應中會出現警告。

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

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

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

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

Azure Blob 索引器隨附組態參數,如果基礎數據提供足夠的資訊,則支援變更追蹤。 您可以從 Azure Blob 儲存體 深入瞭解索引數據的核心功能。

支援的存取層

Blob 記憶體 存取層 包括經常性存取層、非經常性存取層、非經常性存取層、非經常性存取層和封存層。 索引器可以在經常性存取層、非經常性存取層和冷存取層上擷取 Blob。

支援的內容類型

透過容器執行 Blob 索引器,您可以使用單一查詢,從下列內容類型擷取文字和元數據:

  • CSV (請參閱編製 CSV Blob 的索引)
  • EML
  • EPUB
  • GZ
  • 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=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

新增 Blob 的「skip」中繼資料

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

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

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

編製 Blob 中繼資料的索引

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

注意

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

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

搜尋搜尋索引中的 Blob 內容

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

更永久的解決方案是收集查詢輸入,並在用戶端應用程式中將回應呈現為搜尋結果。 下列 C# 教學課程說明如何建置搜尋應用程式:將搜尋新增至 ASP.NET Core (MVC) 應用程式

下一步