在 Azure AI 搜尋服務中匯入精靈
Azure AI 搜尋服務有兩個匯入精靈,可將索引編製和物件定義自動化,讓您可以立即開始查詢。 如果您不熟悉 Azure AI 搜尋服務,這些精靈是您可運用的最強大功能之一。 您不必費太多心力,即可建立索引或擴充管線,以練習 Azure AI 搜尋服務的大部分功能。
[匯入資料精靈] 支援非向量工作流程。 您可以從原始文件擷取英數字元文字。 您也可以設定應用 AI 和內建技能,以推斷結構並從影像檔案和非結構化資料產生文字可搜尋的內容。
匯入並向量化資料精靈支援向量化。 您必須指定內嵌模型的現有部署,但精靈會建立連線、制定要求並處理回應。 它會從文字或影像內容產生向量內容。
如果您使用精靈進行概念證明測試,本文會說明精靈的內部運作方式,讓您更有效率地使用。
本文並非逐步說明。 如需使用精靈搭配內建範例資料的說明,請參閱:
啟動精靈
在 Azure 入口網站中,從儀表板開啟搜尋服務分頁,或在服務清單中尋找服務。
在頂端的服務 [概觀] 頁面中,選取 [匯入資料] 或 [匯入並向量化資料]。
精靈開啟時會在瀏覽器視窗中完全展開,讓您有更多空間可以作業。
如果您選取 [ 匯入數據],則可以選取 [範例 ] 選項,以使用所支持數據源中預先建置的數據樣本。
請遵循精靈中的其餘步驟來建立索引和索引器。
您也可以從其他 Azure 服務 (包括 Azure Cosmos DB、Azure SQL Database、SQL 受控執行個體和 Azure Blob 儲存體) 啟動匯入資料。 在 [服務概觀] 頁面上的左側導覽窗格中,尋找 [新增 Azure AI 搜尋服務]。
精靈所建立的物件
精靈會輸出下表中的物件。 建立物件之後,您就可以在入口網站中檢閱其 JSON 定義,或從程式碼呼叫這些物件。
Object | 描述 |
---|---|
索引子 | 設定物件,其指定資料來源、目標索引、選擇性技能、選擇性排程,以及用於錯誤處理和 Base 64 編碼的選擇性組態設定。 |
資料來源 | 將連線資訊保存到 Azure 上支援的資料來源。 資料來源物件需單獨與索引子搭配使用。 |
Index | 用於全文檢索搜尋和其他查詢的實體資料結構。 |
技能集 | 選擇性。 一組完整的指示,可用來進行內容的操作、轉換和成形作業,包括分析及擷取影像檔案中的資訊。 技能集也會用於整合向量化。 除非工作量落在每天每個索引子 20 筆交易的限制,否則技能集必須包含 Azure AI 多服務資源 (可提供擴充) 的參考。 針對整合式向量化,您可以使用 Azure AI 視覺或 Azure AI Studio 模型目錄中的內嵌模型。 |
知識存放區 | 選擇性。 將資料表和 Blob 的輸出儲存在 Azure 儲存體,以進行獨立分析或於非搜尋案例進行下游處理。 |
福利
在撰寫任何程式碼之前,您可以使用精靈來進行建立原型和概念證明測試。 精靈會連線到外部資料來源、取樣資料以建立初始索引,將資料匯入然後選擇性地將資料向量化為 JSON 文件至 Azure AI 搜尋服務上的索引。
如果您要評估技能集,精靈會處理輸出欄位對應,並新增協助程式函式來建立可用的物件。 如果您指定剖析模式,則會新增文字分割。 如果您選擇了影像分析,則會新增文字合併,以便精靈可以使用影像內容來重新結合文字描述。 如果您選擇了知識存放區選項,則會新增塑形器以支援有效的投影。 上述所有工作都會有學習曲線。 如果您不熟悉擴充,則可讓您測量技能的價值,無須投入太多時間和精力,即可處理這些步驟。
取樣是推斷索引結構描述的程序,而且有一些限制。 建立資料來源時,精靈會挑選隨機的文件範例,來決定哪些資料行是屬於資料來源。 並不會讀取所有檔案,因為可能需要數小時的時間才能取得非常大的資料來源。 假設有選取的文件、來源中繼資料 (例如欄位名稱或類型) 可用來在索引結構描述中建立欄位集合。 視來源資料的複雜度而定,您可能需要編輯初始結構描述以獲得正確性,或將其擴充以獲得完整性。 您可以在索引定義頁面上內嵌變更。
整體來說,使用精靈的優點很明顯:只要符合需求,您就可以在幾分鐘內建立可查詢的索引。 精靈會處理一些編製索引的複雜度,例如將資料序列化為 JSON 文件。
限制
精靈並非沒有限制。 限制摘要如下︰
精靈不支援反覆項目或重複使用。 每次通過精靈都會建立新的索引、技能集和索引子設定。 只有資料來源可在精靈內保存及重複使用。 若要編輯其他物件或縮小其他物件的搜尋範圍,請刪除物件並重新開始,或使用 REST API 或 .NET SDK 來修改結構。
來源內容必須位於支援的資料來源中。
取樣是在來源資料的子集上。 對於大型資料來源,精靈可能會遺漏一些欄位。 如果取樣不足,您可能需要擴充結構描述,或更正推斷的資料類型。
在入口網站中公開的 AI 擴充僅限於內建技能的子集。
精靈可建立的知識存放區僅限於一些預設投影,並使用預設命名慣例。 如果您想要自訂名稱或投影,必須透過 REST API 或 SDK 來建立知識存放區。
安全連線
匯入精靈會使用入口網站控制器和公用端點進行輸出連線。 如果 Azure 資源是透過私人連線或透過共用私人連結存取,則無法使用精靈。
您可以透過受限制的公用連線使用精靈,但並非所有功能都可以使用。
在搜尋服務上,匯入內建取樣資料需要公用端點,且無防火牆規則。
取樣資料是由 Microsoft 於特定 Azure 資源上託管。 入口網站控制器會透過公用端點連線到這些資源。 如果您將搜尋服務放在防火牆後方,當您嘗試擷取內建的範例資料時,就會收到此錯誤:
Import configuration failed, error creating Data Source
,後面接著"An error has occured."
。在受防火牆保護的支援 Azure 資料來源上,如果您有正確的防火牆規則,則可以擷取資料。
Azure 資源必須接受來自連線上所用裝置 IP 位址的網路要求。 您也應該將 Azure AI 搜尋服務列為資源網路設定上受信任的服務。 例如,在 Azure 儲存體中,您可以將
Microsoft.Search/searchServices
列為受信任的服務。在連線至您提供的 Azure AI 多服務帳戶,或連線至部署在 Azure AI Studio 或 Azure OpenAI 中的內嵌模型時,必須啟用公用網際網路存取。 這些 Azure 資源是在您於 [匯入資料] 精靈中使用內建技能或在 [匯入並向量化資料] 精靈中使用整合向量化時呼叫。
在 [匯入並向量化資料] 精靈中,錯誤為
"Access denied due to Virtual Network/Firewall rules."
在 [匯入資料] 精靈中,沒有錯誤,但不會建立技能集。
如果防火牆設定使得精靈工作流程無法成功,請考慮改用指令碼或程式設計方法。
工作流程
精靈會組織成 4 個主要步驟:
連線到支援的 Azure 資料來源。
建立索引結構描述,由取樣來源資料進行推斷。
或者,新增應用 AI 以擷取或產生內容與結構。 此步驟中會收集建立知識存放區的輸入。
執行精靈以建立物件、選擇性地向量化資料、將資料載入索引、設定排程和其他設定選項。
工作流程是管線,因此為單向。 您無法使用精靈來編輯任何已建立的物件,但您可以針對允許的更新使用其他入口網站工具,例如索引或索引子設計工具或是 JSON 編輯器。
精靈中的資料來源設定
精靈會使用 Azure AI 搜尋服務索引子所提供的內部邏輯連線到外部支援的資料來源,配備這些可取樣來源、讀取中繼資料、破解文件來讀取內容和結構,並將內容序列化為 JSON,以便後續匯入至 Azure AI 搜尋服務。
您可以在連線中貼到不同訂用帳戶或區域中支援的資料來源,但 [選擇現有的連線] 選擇器範圍設定為作用中的訂用帳戶。
不保證所有預覽資料來源都可在精靈中使用。 由於每個資料來源都有可能會有其他變更下游,因此,如果預覽資料來源完全支援精靈中的所有體驗 (例如技能集定義和索引結構描述推斷),則只會將預覽資料來源新增至資料來源清單。
您只能從單一資料表、資料庫檢視或對等資料結構匯入,不過,結構可以包含階層式或巢狀子結構。 如需詳細資訊,請參閱如何建立複雜類型模型。
精靈中的技能集設定
技能集設定在資料來源定義之後發生,因為資料來源的類型會告知特定內建技能是否可用。 特別是,如果您要從 Blob 儲存體為檔案編製索引,則選擇這些檔案的剖析模式會判斷情感分析是否可用。
精靈會新增您選擇的技能。 它也會增加達到成功結果的所需的其他技能。 例如,如果您指定知識存放區,精靈會新增塑形器技能來支援投影 (或實體資料結構)。
技能集是選擇性的,如果您不想要 AI 擴充,可以使用頁面底部的一個按鈕來跳過。
精靈中的索引結構描述設定
精靈會取樣您的資料來源,以偵測欄位和欄位類型。 視資料來源而定,其也可能提供編製中繼資料索引的欄位。
因為取樣是不精確的練習,請就下列考量檢閱索引:
欄位清單是否正確? 如果您的資料來源包含取樣中未挑選的欄位,您可以手動新增任何取樣所遺漏的新欄位,並移除未將值新增至搜尋體驗的任何欄位,或篩選條件運算式或評分設定檔中不會使用的任何欄位。
資料類型是否適用於傳入的資料? Azure AI 搜尋服務支援實體資料模型 (EDM) 資料類型。 針對 Azure SQL 資料,會有配置對等值的對應圖表。 如需更多背景,請參閱欄位對應和轉換。
您是否有一個欄位可做為金鑰? 此欄位必須為 Edm.string,且必須唯一識別文件。 針對關聯式資料,其可能會對應至主索引鍵。 針對 Blob,可能是
metadata-storage-path
。 如果欄位值包含空格或連字號,您必須在 [建立索引子] 步驟的 [進階選項] 底下設定 [Base-64 編碼金鑰] 選項,以隱藏這些字元的驗證檢查。設定屬性以判斷該欄位在索引中的使用方式。
請花點時間進行此步驟,因為屬性會決定索引中欄位的實體運算式。 如果您想要在稍後變更屬性,甚至以程式設計方式變更屬性,您幾乎一律需要卸除並重建索引。 [可搜尋] 和 [可擷取] 等核心屬性會對儲存體造成微乎其微的影響。 啟用篩選條件及使用建議工具會增加儲存需求。
Searchable 能夠進行全文檢索搜尋。 用於自由格式查詢或查詢運算式的每個欄位都必須有這個屬性。 針對您標示為 Searchable 的每個欄位,系統會建立反向索引。
Retrievable 會在搜尋結果中傳回欄位。 提供內容來搜尋結果的每個欄位都必須有這個屬性。 設定這個欄位對索引大小的影響很小。
Filterable 允許在篩選運算式中參考欄位。 用於 $filter 運算式的每個欄位都必須有這個屬性。 篩選條件運算式會用來進行精準比對。 因為文字字串會維持不變,所以需要更多儲存體才能容納逐字的內容。
Facetable 可讓欄位進行多面向導覽。 只有同時標示為 Filterable 的欄位才可以標示為 Facetable。
Sortable 允許欄位用於排序。 用於 $Orderby 運算式的每個欄位都必須有這個屬性。
您需要語彙分析嗎? 針對 [可搜尋] 的 Edm.string 欄位,如果您想要語言增強的索引和查詢,可以設定 [分析器]。
預設值是「標準 Lucene」,但如果您想要使用 Microsoft 的分析器來進行進階的語彙處理 (例如,解析不規則的名詞和動詞形式),則可以選擇「Microsoft 英文」。 入口網站中只能指定語言分析器。 如果您使用自訂分析器或非語言分析器,例如關鍵字、模式等等,您必須以程式設計方式建立它。 如需分析器的詳細資訊,請參閱新增語言分析器。
您需要自動完成或建議結果形式的預先輸入功能嗎? 選取 [建議工具] 核取方塊,以在選取的欄位上啟用預先輸入的查詢建議和自動完成。 建議工具會新增至索引中的權杖化字詞數目,因此會耗用更多儲存體。
精靈中的索引子設定
精靈的最後一頁會收集索引子設定的使用者輸入。 您可以指定排程,並設定其他會因資料來源類型而異的選項。
精靈也會在內部設定下列定義,在建立索引子之前,這些定義不會顯示在索引子中:
下一步
如需了解精靈的優點和限制,最佳方式是逐步執行。 以下快速入門說明每個步驟。