Azure AI 搜尋中的數據匯入
在 Azure AI 搜尋中,查詢會針對載入至 搜尋索引的使用者擁有內容執行。 本文說明填入索引的兩個基本工作流程:以程序設計方式將數據推送至索引,或使用搜尋索引器提取數據。
這兩種方法都會從外部數據源載入檔。 雖然您可以建立空的索引,但在您新增內容之前,它無法查詢。
注意
如果 AI 擴充 是解決方案需求,您必須使用提取模型(索引器)來載入索引。 技能集會附加至索引器,且不會獨立執行。
將數據推送至索引
推送模型是使用 API 將文件上傳至現有搜尋索引的方法。 您可以個別或批次上傳檔,每個批次最多 1000 個,或每個批次 16 MB,無論限制先到哪一個。
主要優點包括:
數據源類型沒有限制。 承載必須由對應至索引架構的 JSON 檔組成,但數據可從任何地方進行來源。
執行頻率沒有限制。 您可以視需要將變更推送至索引。 對於有低延遲需求的應用程式(例如,當索引需要與產品庫存波動同步時),推送模型是您唯一的選項。
連線性和檔的安全擷取完全在您的控制之下。 相反地,索引器連線是使用 Azure AI 搜尋中提供的安全性功能進行驗證。
如何將數據推送至 Azure AI 搜尋服務索引
使用下列 API 將單一或多個檔案載入索引:
- 新增、更新或移除檔案 (REST API)
- IndexDocumentsAsync (Azure SDK for .NET) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (適用於 Python 的 Azure SDK) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (適用於 Java 的 Azure SDK) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK for JavaScript 或 SearchIndexingBufferedSender
不支援透過 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 的索引器適用於下列平臺:
- Azure Blob 儲存體
- Azure 資料表記憶體
- Azure Data Lake Storage Gen2 \(部分機器翻譯\)
- Azure 檔案儲存體 (預覽)
- Azure Cosmos DB
- Azure VM 上的 Azure SQL 資料庫、SQL 受管理執行個體 和 SQL Server
- Microsoft 365 中的 SharePoint (預覽版)
您可以使用由 Microsoft 合作夥伴開發和維護的第三方連接器。 如需詳細資訊和連結,請參閱 數據源資源庫。
索引器會將索引連接到數據源(通常是數據表、檢視或對等結構),並將來源字段對應至索引中的對等字段。 在執行期間,數據列集會自動轉換成 JSON,並載入至指定的索引。 所有索引器都支援排程,以便您可以指定重新整理數據的頻率。 如果數據源支援變更追蹤,大部分的索引器都會提供變更追蹤。 除了辨識新檔之外,追蹤現有文件的變更和刪除,索引器會移除主動管理索引中數據的需求。
如何將數據提取至 Azure AI 搜尋索引
針對索引器型索引編製使用下列工具和 API:
- Azure 入口網站 中的匯入數據精靈
- REST API: 建立索引器 (REST)、 建立數據源 (REST)、 建立索引 (REST)
- 適用於 .NET 的 Azure SDK:SearchIndexer、SearchIndexerDataSource 連線 ion、SearchIndex、
- 適用於 Python 的 Azure SDK:SearchIndexer、SearchIndexerDataSource 連線 ion、SearchIndex、
- 適用於 Java 的 Azure SDK:SearchIndexer、SearchIndexerDataSource 連線 ion、SearchIndex、
- 適用於 JavaScript 的 Azure SDK:SearchIndexer、SearchIndexerDataSource 連線 ion、SearchIndex、
索引器功能會在 [Azure 入口網站]、REST API 和 .NET SDK 中公開。
使用入口網站的優點是,Azure AI 搜尋通常會藉由讀取來源數據集的元數據來產生預設索引架構。
使用搜尋總管確認數據匯入
在文件上傳上執行初步檢查的快速方法是在入口網站中使用 搜尋 總管。
總管可讓您查詢索引,而不需要撰寫任何程序代碼。 搜尋體驗是以預設設定為基礎,例如 簡單語法 和預設 searchMode 查詢參數。 結果會以 JSON 傳回,讓您可以檢查整份檔。
以下是您可以在 JSON 檢視的搜尋總管中執行的範例查詢。 “HotelId” 是 hotels-sample-index 的文件索引鍵。 篩選會提供特定檔案的檔案識別碼:
{
"search": "*",
"filter": "HotelId eq '50'"
}
如果您使用 REST,此 查閱查詢 會達到相同的目的。