Azure AI 搜尋服務中的資料匯入
在 Azure AI 搜尋服務中,查詢會針對載入至搜尋索引的使用者擁有內容執行。 本文描述兩個用於填入索引的基本工作流程:以程式設計方式將資料「推送」至索引,或使用搜尋索引子「提取」資料。
這兩種方法都會從外部資料來源載入文件。 雖然您可以建立空的索引,但在您新增內容之前無法查詢該索引。
將資料推送到索引
推送模型是使用 API 將文件上傳至現有搜尋索引的方法。 您可以個別或以批次方式上傳文件,每個批次最多 1000 個文件,或每個批次 16 MB,以先到者為準。
主要優點包括:
針對資料來源類型沒有限制。 承載必須包含對應至索引結構描述的 JSON 文件,但資料可以來自任何地方。
針對執行頻率沒有限制。 您可以視需要經常將變更推送到索引。 若應用程式需要低延遲 (例如,當索引需要與產品庫存波動保持同步時),推送模式是您的唯一選擇。
您可以完全掌控連線能力與文件的安全擷取。 相反地,索引子連線是使用 Azure AI 搜尋服務中提供的安全性功能進行驗證。
如何將資料推送至 Azure AI 搜尋服務索引
請使用下列 API,將單一或多份文件載入索引中:
- 索引文件 (REST API)
- IndexDocumentsAsync (Azure SDK for .NET) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK for Python) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK for Java) 或 SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK for JavaScript) 或 SearchIndexingBufferedSender
不支援透過 Azure 入口網站推送資料。
如需推送 API 的簡介,請參閱:
編制索引動作:upload、merge、mergeOrUpload、delete
您可以根據文件控制編製索引動作的類型,進而指定文件是否應該完整上傳、與現有文件內容合併,或將其刪除。
無論您使用 REST API 還是 Azure SDK,都支援下列文件作業進行資料匯入:
Upload 動作類似 "upsert",如果是新文件,就會插入該文件,如果文件已經存在,就會更新或取代該文件。 如果文件遺漏索引所需的值,則文件欄位的值會設定為 null。
merge 會更新已經存在的文件,而且會使找不到的文件失敗。 合併會取代現有的值。 基於這個原因,請務必檢查包含多個值的集合欄位,例如類型為
Collection(Edm.String)
的欄位。 例如,如果tags
欄位以["budget"]
的值開始,而且使用["economy", "pool"]
執行合併,則tags
欄位的最終值為["economy", "pool"]
。 其不會是["budget", "economy", "pool"]
。如果文件存在,mergeOrUpload 的行為就像 merge 一樣,而如果文件是新的,則像 upload 一樣。
delete 會從索引中刪除整份文件。 如果想要移除個別欄位,請改用 merge,將有問題的欄位設定為 null。
將資料提取到索引中
提取模型會使用連線至受支援資料來源的索引子,自動將資料上傳至您的索引中。 來自 Microsoft 的索引子適用於下列平台:
- Azure Blob 儲存體
- Azure 資料表儲存體
- Azure Data Lake Storage Gen2 \(部分機器翻譯\)
- Azure 檔案儲存體 (預覽)
- Azure Cosmos DB
- Azure VM 上的 Azure SQL Database、SQL 受控執行個體和 SQL Server
- OneLake 檔案和捷徑
- SharePoint Online (預覽)
您可以使用由 Microsoft 合作夥伴開發和維護的第三方連接器。 如需詳細資訊和連結,請參閱資料來源資源庫。
索引子可將索引連接到資料來源 (通常是資料表、檢視或對等結構),並將來源欄位對應至索引中的對等欄位。 在執行期間,資料列集會自動轉換為 JSON 並載入指定的索引。 所有索引子都支援排程,以便您可以指定資料重新整理的頻率。 如果資料來源支援索引子,則大部分的索引子都會提供變更追蹤。 除了辨識新文件,索引子還會追蹤現有文件的變更和刪除,讓您不必主動管理索引中的資料。
如何將資料提取至 Azure AI 搜尋服務索引
請使用以下工具和 API,進行以索引子為基礎的索引編製:
- 匯入資料精靈或匯入並向量化資料精靈
- REST API:建立索引子 (REST)、建立資料來源 (REST)、建立索引 (REST)
- Azure SDK for .NET:SearchIndexer、SearchIndexerDataSourceConnection、SearchIndex
- Azure SDK for Python:SearchIndexer、SearchIndexerDataSourceConnection、SearchIndex
- Azure SDK for Java:SearchIndexer、SearchIndexerDataSourceConnection、SearchIndex
- Azure SDK for JavaScript:SearchIndexer、SearchIndexerDataSourceConnection、SearchIndex
索引子功能會在 [Azure 入口網站]、REST API 以及 .NET SDK 中出現。
使用入口網站的優點在於,Azure AI 搜尋服務通常可藉由讀取來源資料集的中繼資料,產生預設的索引結構描述。
透過搜尋總管確認資料匯入
對文件上傳執行初步檢查的快速方法是使用入口網站中的搜尋總管。
此總管可讓您查詢索引,而不需撰寫任何程式碼。 搜尋體驗是以預設設定為基礎,例如簡單語法和預設 searchMode 查詢參數。 結果會以 JSON 格式傳回,以便您檢查整份文件。
以下是您可以透過 JSON 檢視在 [搜尋總管] 中執行的範例查詢。 "HotelId" 是 hotels-sample-index 的文件索引鍵。 篩選條件會提供特定文件的文件識別碼:
{
"search": "*",
"filter": "HotelId eq '50'"
}
如果您使用 REST,此查閱查詢會達成相同的目的。