Azure AI 搜尋中的數據匯入

在 Azure AI 搜尋中,查詢會針對載入至 搜尋索引的使用者擁有內容執行。 本文說明填入索引的兩個基本工作流程:以程序設計方式將數據推送至索引,或使用搜尋索引器提取數據

這兩種方法都會從外部數據源載入檔。 雖然您可以建立空的索引,但在您新增內容之前,它無法查詢。

注意

如果 AI 擴充 是解決方案需求,您必須使用提取模型(索引器)來載入索引。 技能集會附加至索引器,且不會獨立執行。

將數據推送至索引

推送模型是使用 API 將文件上傳至現有搜尋索引的方法。 您可以個別或批次上傳檔,每個批次最多 1000 個,或每個批次 16 MB,無論限制先到哪一個。

主要優點包括:

  • 數據源類型沒有限制。 承載必須由對應至索引架構的 JSON 檔組成,但數據可從任何地方進行來源。

  • 執行頻率沒有限制。 您可以視需要將變更推送至索引。 對於有低延遲需求的應用程式(例如,當索引需要與產品庫存波動同步時),推送模型是您唯一的選項。

  • 連線性和檔的安全擷取完全在您的控制之下。 相反地,索引器連線是使用 Azure AI 搜尋中提供的安全性功能進行驗證。

如何將數據推送至 Azure AI 搜尋服務索引

使用下列 API 將單一或多個檔案載入索引:

不支援透過 Azure 入口網站 推送數據。

如需推送 API 的簡介,請參閱:

編製索引動作:upload、merge、mergeOrUpload、delete

您可以根據每份檔控制索引動作的類型,指定檔是否應該完整上傳、與現有文件內容合併或刪除。

無論您使用 REST API 還是 Azure SDK,數據匯入都支援下列文件作業:

  • 上傳,類似於 「upsert」 如果檔是新的,則會在檔案存在時更新或取代。 如果文件遺漏索引所需的值,則檔欄位的值會設定為 null。

  • 合併 會更新已經存在的檔,而且找不到找不到的文件失敗。 合併會取代現有的值。 基於這個理由,請務必檢查包含多個值的集合欄位,例如類型的 Collection(Edm.String)欄位。 例如,如果tags欄位以 的值["budget"]開頭,而且您執行與["economy", "pool"]的合併,則欄位["economy", "pool"]的最終值為 tags 。 它不會是 ["budget", "economy", "pool"]

  • mergeOrUpload 的行為就像合併檔存在,如果檔是新的,則上傳

  • delete 會從索引中移除整個檔。 如果您想要移除個別欄位,請改用 合併 ,將有問題的欄位設定為 null。

將數據提取至索引

提取模型會使用 連接到支持的數據源的索引器 ,自動將數據上傳至您的索引。 來自 Microsoft 的索引器適用於下列平臺:

您可以使用由 Microsoft 合作夥伴開發和維護的第三方連接器。 如需詳細資訊和連結,請參閱 數據源資源庫

索引器會將索引連接到數據源(通常是數據表、檢視或對等結構),並將來源字段對應至索引中的對等字段。 在執行期間,數據列集會自動轉換成 JSON,並載入至指定的索引。 所有索引器都支援排程,以便您可以指定重新整理數據的頻率。 如果數據源支援變更追蹤,大部分的索引器都會提供變更追蹤。 除了辨識新檔之外,追蹤現有文件的變更和刪除,索引器會移除主動管理索引中數據的需求。

如何將數據提取至 Azure AI 搜尋索引

針對索引器型索引編製使用下列工具和 API:

索引器功能會在 [Azure 入口網站]、REST API.NET SDK 中公開。

使用入口網站的優點是,Azure AI 搜尋通常會藉由讀取來源數據集的元數據來產生預設索引架構。

使用搜尋總管確認數據匯入

在文件上傳上執行初步檢查的快速方法是在入口網站中使用 搜尋 總管。

Screenshot of Search Explorer command in the Azure portal.

總管可讓您查詢索引,而不需要撰寫任何程序代碼。 搜尋體驗是以預設設定為基礎,例如 簡單語法 和預設 searchMode 查詢參數。 結果會以 JSON 傳回,讓您可以檢查整份檔。

以下是您可以在 JSON 檢視的搜尋總管中執行的範例查詢。 “HotelId” 是 hotels-sample-index 的文件索引鍵。 篩選會提供特定檔案的檔案識別碼:

{
  "search": "*",
  "filter": "HotelId eq '50'"
}

如果您使用 REST,此 查閱查詢 會達到相同的目的。

另請參閱