Azure 認知搜尋中的索引子

Azure 認知搜尋中的索引子是編目程式,可從雲端資料來源擷取可搜尋的內容,並使用來源資料與搜尋索引之間的欄位對欄位對應來填入搜尋索引。 這種方法有時稱為「提取模型」,因為搜尋服務會提取資料,而不需要撰寫任何將資料新增至索引的程式碼。 索引子也會推動認知搜尋的 AI 擴充 功能,整合內容路由至索引的外部處理。

索引子是僅限雲端的,具有 支援資料來源的個別索引子。 設定索引子時,您會指定資料來源 (來源) 和搜尋索引 (目的地) 。 數個來源,例如Azure Blob 儲存體,具有該內容類型特有的更多組態屬性。

您可以視需要執行索引子,或依週期性資料重新整理排程,每隔五分鐘執行一次。 更頻繁的更新需要「推送模型」,以同時更新Azure 認知搜尋和外部資料源中的資料。

索引子案例和使用案例

您可以使用索引子作為資料擷取的唯一方法,或與其他技術搭配使用。 下表摘要說明主要案例。

案例 策略
單一資料來源 此模式最簡單:一個資料來源是搜尋索引的唯一內容提供者。 大部分支援的資料來源都提供某種形式的變更偵測,讓後續的索引子在來源中新增或更新內容時,會挑選差異。
多個資料來源 索引子規格只能有一個資料來源,但搜尋索引本身可以接受來自多個來源的內容,其中每個索引子執行都會從不同的資料提供者帶入新的內容。 每個來源都可以參與其完整檔的共用,或填入每個檔中的選取欄位。 如需此案例的深入探討,請參閱 教學課程:從多個資料來源編制索引
多個索引子 如果您需要變更執行時間參數、排程或欄位對應,通常會將多個資料來源與多個索引子配對。

跨區域向外延展認知搜尋 是另一個案例。 您可能在不同的區域中有相同搜尋索引的複本。 若要同步處理搜尋索引內容,您可以從相同的資料來源提取多個索引子,其中每個索引子會以每個區域中不同的搜尋索引為目標。

非常大型資料集的平行編制索引也需要多索引子策略,其中每個索引子都是以資料子集為目標。
內容轉換 索引子會驅動 AI 擴充。 內容轉換定義在您附加至索引子的 技能集中

支援的資料來源

索引子會編目 Azure 和 Azure 外部的資料存放區。

索引子接受扁平化的資料列集,例如資料表或檢視表,或容器或資料夾中的專案。 在大部分情況下,它會針對每個資料列、記錄或專案建立一個搜尋檔。

當您對用戶端應用程式使用 Azure 虛擬網路時,可以使用標準網際網路連線來建立遠端資料源的索引子連線, (公用) 或加密的私人連線。 您也可以設定連線,以使用受控識別進行驗證。 如需安全連線的詳細資訊,請參閱 索引子存取受 Azure 網路安全性功能保護的內容 ,以及 使用受控識別連線至資料來源

編制索引的階段

在初始執行時,當索引是空的時,索引子會在資料表或容器中提供的所有資料中讀取。 在後續執行時,索引子通常只能偵測並擷取已變更的資料。 對於 Blob 資料,變更偵測是自動的。 對於其他資料來源,例如 Azure SQL 或 Azure Cosmos DB,必須啟用變更偵測。

針對它收到的每份檔,索引子會實作或協調多個步驟,從檔擷取到最終搜尋引擎「交接」以進行編制索引。 選擇性地,索引子也會驅動 技能集執行和輸出,假設已定義技能集。

索引子階段

階段 1:檔破解

檔破解是開啟檔案和擷取內容的程式。 文字型內容可以從服務上的檔案、資料表中的資料列,或容器或集合中的專案擷取。 如果您新增技能集和 影像技能,檔破解也可以擷取影像,並將其排入佇列以進行影像處理。

根據資料來源,索引子會嘗試不同的作業來擷取可能可編制索引的內容:

  • 當檔是內嵌影像的檔案時,例如 PDF,索引子會擷取文字、影像和中繼資料。 索引子可以從Azure Blob 儲存體Azure Data Lake Storage Gen2SharePoint開啟檔案。

  • 當檔是Azure SQL中的記錄時,索引子會從每個記錄中的每個欄位擷取非二進位內容。

  • 當檔是 Azure Cosmos DB中的記錄時,索引子會從 Azure Cosmos DB 檔中的欄位和子欄位擷取非二進位內容。

階段 2:欄位對應

索引子會從來源欄位擷取文字,並將其傳送至索引或知識存放區中的目的地欄位。 當功能變數名稱和資料類型一致時,路徑會清楚。 不過,您可能需要輸出中的不同名稱或類型,在此情況下,您必須告訴索引子如何對應欄位。

若要 指定欄位對應,請在索引子定義中輸入來源和目的地欄位。

當索引子從來源文件讀取時,欄位對應會在檔破解之後發生,但在轉換之前發生。 當您定義欄位對應時,來源欄位的值會依原樣傳送至目的地欄位,而不需要修改。

階段 3:技能集執行

技能集執行是叫用內建或自訂 AI 處理的選擇性步驟。 技能集可以在內容為二進位檔時,將光學字元辨識 (OCR) 或其他形式的影像分析。 技能集也可以新增自然語言處理。 例如,您可以新增文字翻譯或關鍵字組擷取。

不論轉換為何,技能集執行都是擴充發生的位置。 如果索引子是管線,您可以將 技能集 視為「管線內的管線」。

階段 4:輸出欄位對應

如果您包含技能集,則必須在索引子定義中 指定輸出欄位對應 。 技能集的輸出會在內部顯示為稱為 擴充檔的樹狀結構。 輸出欄位對應可讓您選取此樹狀結構中的哪些部分,以對應到索引中的欄位。

儘管名稱相似,輸出欄位對應和欄位對應仍會從不同的來源建置關聯。 欄位對應會將來源欄位的內容與搜尋索引中的目的地欄位產生關聯。 輸出欄位對應會將內部擴充檔的內容關聯 (技能輸出) 索引中的目的地欄位。 不同于被視為選擇性的欄位對應,任何應該在索引中轉換的內容都需要輸出欄位對應。

下圖顯示索引子階段的範例索引子 偵錯會話 標記法:檔破解、欄位對應、技能集執行,以及輸出欄位對應。

範例偵錯會話

基本工作流程

索引子可以提供資料來源特有的功能。 在這方面,索引子或資料來源組態的某些層面會因索引子類型而所有不同。 不過,所有索引子都有共用的的基本組成和需求。 下文涵蓋所有的索引子的通用步驟。

步驟 1:建立資料來源

索引子需要提供連接字串和可能認證的 資料來源 物件。 呼叫 Create Data Source (REST) SearchIndexerDataSourceConnection 類別 來建立資源。

資料來源是獨立的物件。 多個索引子可以使用相同的資料來源物件一次載入多個索引。

步驟 2:建立索引

索引子會自動執行有關資料擷取的某些工作,但是通常不包括建立索引。 必要條件是,您必須有預先定義的索引,其中包含外部資料源中任何來源欄位的對應目標欄位。 欄位必須依名稱和資料類型進行比對。 如果沒有,您可以 定義欄位對應 來建立關聯。 如需建構索引的詳細資訊,請參閱 建立索引 (REST) SearchIndex 類別

提示

雖然索引子不能為您產生索引,但入口網站中的 [匯入資料] 精靈有所幫助。 在大部分情況下,此精靈可以從來源中的現有中繼資料推斷索引結構描述,並呈現您可以在精靈作用中時以內嵌方式編輯的初步索引結構描述。 一旦在服務上建立索引後,在入口網站中的進一步編輯大部分都受限於新增欄位。 請考慮使用精靈進行建立,但非修改索引。 如需實際操作學習,請逐步執行入口網站逐步解說

步驟 3:建立並執行 (或排程) 索引子

根據預設,當您在搜尋服務上建立索引子時,就會執行第 一個索引子 。 您可以在索引子中設定 「disabled」 屬性來建立它,而不需執行它。

任何有關資料存取或技能集驗證的錯誤或警告,都會在索引子執行期間發生。 在索引子執行開始時,資料來源和技能集等相依物件在搜尋服務上都是被動的。

在第一個索引子執行之後,您可以使用 [執行索引子] 視需要重新執行索引子,也可以 定義週期性排程

您可以在 入口網站中 或透過 取得索引子狀態 API 來監視索引子狀態。 您也應該 在索引上執行查詢 ,以確認結果是您預期的結果。

索引子沒有專用的處理資源。 根據此情況,索引子的狀態可能會在執行 (之前顯示為閒置,視佇列中的其他作業而定,) 和執行時間可能無法預測。 其他因素也會定義索引子效能,例如檔案大小、檔複雜度、影像分析等等。

後續步驟

既然您已引進索引子,下一個步驟是檢閱索引子屬性和參數、排程和索引子監視。 或者,您可以返回 支援的資料來源 清單,以取得特定來源的詳細資訊。