Azure AI 搜尋中的索引子
Azure AI 搜尋中的索引子是編目程式 ,可從雲端資料來源擷取可搜尋的內容,並使用來源資料與搜尋索引之間的欄位對欄位對應來填入搜尋索引。 這種方法有時稱為「提取模型」,因為搜尋服務會提取資料,而不需要撰寫任何將資料加入至索引的程式碼。 索引子也會推動 Azure AI 搜尋的 AI 擴充 功能,將內容的外部處理整合到索引。
索引子為僅限雲端,具有支援資料來源的 個別索引子 。 設定索引子時,您將指定資料來源(原點)和搜尋索引(目的地)。 數個來源,例如Azure Blob 儲存體,具有該內容類型專屬的更多組態屬性。
您可以視需要執行索引子,或依週期性資料重新整理排程執行,此排程會每隔五分鐘執行一次。 更頻繁的更新需要「 推送模型」 ,以同時更新 Azure AI 搜尋服務和外部資料源中的資料。
索引子案例和使用案例
您可以使用索引子作為資料擷取的唯一方法,或與其他技術搭配使用。 下表摘要說明主要案例。
案例 | 策略 |
---|---|
單一資料來源 | 此模式最簡單的方式:一個資料來源是搜尋索引的唯一內容提供者。 大部分支援的資料來源都會提供某種形式的變更偵測,讓後續的索引子在來源中新增或更新內容時,會挑選差異。 |
多個資料來源 | 索引子規格只能有一個資料來源,但搜尋索引本身可以接受來自多個來源的內容,其中每個索引子執行都會從不同的資料提供者帶來新內容。 每個來源都可以參與其完整檔的共用,或在每個檔中填入選取的欄位。 如需此案例的更進一步瞭解,請參閱 教學課程:從多個資料來源編制 索引。 |
多個索引子 | 如果您需要改變執行時間參數、排程或欄位對應,通常會將多個資料來源與多個索引子配對。 跨區域向外延展 Azure AI 搜尋 是另一個案例。 在不同的區域中,您可能有相同搜尋索引的複本。 若要同步處理搜尋索引內容,您可以從相同的資料來源提取多個索引子,其中每個索引子會以每個區域中不同的搜尋索引為目標。 非常大型資料集的平行編制索引 也需要多索引子策略,其中每個索引子都會以資料子集為目標。 |
內容轉換 | 索引子會推動 AI 擴充 。 內容轉換定義于 您附加至索引子技能集 。 |
您應該規劃為每個目標索引和資料來源組合建立一個索引子。 您可以讓多個索引子寫入相同的索引子,而且您可以針對多個索引子重複使用相同的資料來源。 不過,索引子一次只能取用一個資料來源,而且只能寫入單一索引。 如下圖所示,一個資料來源會提供一個索引子輸入,然後填入單一索引:
雖然您一次只能使用一個索引子,但資源可以用於不同的組合。 下一個圖的主要要點是,資料來源可以與多個索引子配對,而多個索引子可以寫入相同的索引。
支援的資料來源
索引子會編目 Azure 和 Azure 外部的資料存放區。
- Azure Blob 儲存體
- Azure Cosmos DB
- Azure Data Lake Storage Gen2 \(部分機器翻譯\)
- Azure SQL Database
- Azure 資料表儲存體
- Azure SQL 受控執行個體
- Azure 虛擬機器上的 SQL Server
- Azure 檔案儲存體 (預覽版)
- Azure MySQL (預覽版)
- Microsoft 365 中的 SharePoint (預覽版)
- 適用于 MongoDB 的 Azure Cosmos DB (預覽版)
- 適用于 Apache Gremlin 的 Azure Cosmos DB (預覽版)
不支援適用于 Cassandra 的 Azure Cosmos DB。
索引子接受扁平化資料列集,例如資料表或檢視表,或容器或資料夾中的專案。 在大部分情況下,它會為每個資料列、記錄或專案建立一份搜尋檔。
當您將 Azure 虛擬網路用於用戶端應用程式時,可以使用標準網際網路連線(公用)或加密的私人連線來建立遠端資料源的索引子連線。 您也可以設定使用受控識別進行驗證的連線。 如需安全連線的詳細資訊,請參閱 索引子存取受 Azure 網路安全性功能 保護的內容,以及 使用受控識別 對資料來源連線。
編制索引的階段
在初始執行時,當索引是空的時,索引子會在資料表或容器中提供的所有資料中讀取。 在後續執行時,索引子通常只能偵測並擷取已變更的資料。 針對 Blob 資料,變更偵測是自動的。 對於 Azure SQL 或 Azure Cosmos DB 等其他資料來源,必須啟用變更偵測。
針對它收到的每份檔,索引子會實作或協調多個步驟,從檔擷取到最終搜尋引擎「交接」以進行編制索引。 或者,索引子也會驅動 技能集執行和輸出 ,假設定義了技能集。
階段 1:檔破解
文件萃取是開啟檔案和擷取內容的程序。 文字型內容可以從服務上的檔案、資料表中的資料列,或容器或集合中的專案擷取。 如果您新增技能集和 影像技能 ,檔破解也可以擷取影像,並將其排入佇列以進行影像處理。
根據資料來源,索引子會嘗試不同的作業來擷取可能可編制索引的內容:
當檔是內嵌影像的檔案時,例如 PDF,索引子會擷取文字、影像和中繼資料。 索引子可以從 Azure Blob 儲存體 、 Azure Data Lake 儲存體 Gen2 和 SharePoint 開啟檔案 。
當檔是 Azure SQL 中的 記錄時,索引子會從每個記錄中的每個欄位擷取非二進位內容。
當檔是 Azure Cosmos DB 中的 記錄時,索引子會從 Azure Cosmos DB 檔中的欄位和子欄位擷取非二進位內容。
階段 2:欄位對應
索引子會從來源欄位擷取文字,並將其傳送至索引或知識存放區中的目的地欄位。 當功能變數名稱和資料類型重合時,路徑會清楚。 不過,您可能會想要輸出中的不同名稱或類型,在此情況下,您必須告訴索引子如何對應欄位。
若要 指定欄位對應 ,請在索引子定義中輸入來源和目的地欄位。
欄位對應會在檔破解之後發生,但在轉換之前,當索引子從來源文件讀取時發生。 當您定義欄位對應時,來源欄位的值會依目前傳送至目的地欄位,而不需要修改。
階段 3:技能集執行
技能集執行是選擇性步驟,可叫用內建或自訂 AI 處理。 技能集可以在內容為二進位時新增光學字元辨識(OCR)或其他形式的影像分析。 技能集也可以新增自然語言處理。 例如,您可以新增文字翻譯或關鍵字組擷取。
無論轉換為何,技能集執行都是擴充發生的位置。 如果索引子是管線,您可以將技能集 視為 「管線內的管線」。
階段 4:輸出欄位對應
如果您包含技能集,則必須 在索引子定義中指定輸出欄位對應 。 技能集的輸出會在內部顯示為樹狀結構,稱為 擴充檔 。 輸出欄位對應可讓您選取要對應至索引中欄位的這個樹狀結構哪些部分。
儘管名稱相似,但輸出欄位對應和欄位對應會建置來自不同來源的關聯。 欄位對應會將來源欄位的內容與搜尋索引中的目的地欄位產生關聯。 輸出欄位對應會將內部擴充檔的內容(技能輸出)與索引中的目的地欄位產生關聯。 與視為選擇性的欄位對應不同,任何應該在索引中轉換的內容都需要輸出欄位對應。
下一個影像顯示索引子偵錯會話階段的範例索引子 偵錯會話 表示:檔破解、欄位對應、技能集執行,以及輸出欄位對應。
基本工作流程
索引子可以提供資料來源唯一的功能。 在這方面,索引子或資料來源組態的某些層面會因索引子類型而異。 不過,所有索引子都會共用相同的基本組合和需求。 以下是所有索引子通用的步驟。
步驟 1:建立資料來源
索引子需要 提供連接字串和可能認證的資料來源 物件。 資料來源是獨立的物件。 多個索引子可以使用相同的資料來源物件一次載入多個索引。
您可以使用下列任何一種方法來建立資料來源:
- 使用Azure 入口網站,在搜尋服務頁面的 [資料來源 ] 索引標籤上 ,選取 [新增資料來源 ] 以指定資料來源定義。
- 使用Azure 入口網站,匯 入資料精靈 會輸出資料來源。
- 使用 REST API,呼叫 建立資料來源 。
- 使用適用于 .NET 的 Azure SDK,呼叫 SearchIndexerDataSource連線ion 類別
步驟 2:建立索引
索引器會將一些與數據擷取相關的工作自動化,但建立索引通常不是其中之一。 必要條件是,您必須有預先定義的索引,其中包含外部數據源中任何來源欄位的對應目標欄位。 欄位必須依名稱和數據類型比對。 如果沒有,您可以 定義欄位對應 來建立關聯。
如需詳細資訊,請參閱 建立索引。
步驟 3:建立並執行索引器(或排程) 索引器
索引器定義包含可唯一識別索引器的屬性、指定要使用的數據源和索引,以及提供其他會影響運行時間行為的組態選項,包括索引器是否視需要或依排程執行。
有關數據存取或技能集驗證的任何錯誤或警告,都會在索引器執行期間發生。 在索引器執行開始之前,相依物件,例如數據源、索引和技能集在搜尋服務上都是被動的。
如需詳細資訊,請參閱 建立索引器
第一個索引器執行之後,您可以 視需要 重新執行或 設定排程。
您可以在入口網站中或透過取得索引器狀態 API 來監視索引器狀態。 您也應該 在索引 上執行查詢,以確認結果是您預期的結果。
索引器沒有專用的處理資源。 因此,索引器的狀態可能會在執行之前顯示為閑置(視佇列中的其他作業而定),而且運行時間可能無法預測。 其他因素也會定義索引器效能,例如檔大小、文件複雜度、影像分析等等。
下一步
既然您已對索引器進行介紹,下一個步驟是檢閱索引器屬性和參數、排程和索引器監視。 或者,您可以返回支持的數據源清單,以取得特定來源的詳細資訊。