在 Azure AI 搜尋中建立索引別名

重要

索引別名目前處於公開預覽狀態,可在補充使用規定下取得。

在 Azure AI 搜尋中,索引別名是次要名稱,可用來參考查詢、編製索引和其他作業的索引。 您可以建立對應至搜尋索引的別名,並在您參考索引名稱的位置取代別名名稱。 如果您需要變更應用程式所指向的索引,別名會增加彈性。 您可以只更新別名的對應,而不是更新應用程式中的參考。

索引別名的主要目標是讓您更輕鬆地管理生產索引。 例如,如果您需要變更索引定義,例如編輯欄位或新增分析器,您必須建立新的搜尋索引,因為所有搜尋索引都是固定的。 這表示您需要 卸除並重建索引 ,或建立新的索引,然後將您的應用程式移轉至該索引。

您可以使用索引別名,而不是卸除和重建索引。 典型的工作流程是:

  1. 建立搜尋索引
  2. 建立對應至搜尋索引的別名
  3. 讓您的應用程式將查詢/編製索引要求傳送至別名,而不是索引名稱
  4. 當您需要變更需要重建的索引時,請建立新的搜尋索引
  5. 當您的新索引準備就緒時,請更新別名以對應至新的索引,且要求會自動路由傳送至新的索引

建立索引別名

您可以使用預覽 REST API、預覽 SDK 或透過 Azure 入口網站 來建立別名。 別名包含 name 別名的 ,以及別名所對應的搜尋索引名稱。 陣列中 indexes 只能指定一個索引名稱。

您可以使用建立 或更新別名 (REST 預覽) 來建立索引別名。

POST /aliases?api-version=2023-10-01-preview
{
    "name": "my-alias",
    "indexes": ["hotel-samples-index"]
}

將要求傳送至索引別名

建立別名之後,您就可以開始使用別名。 別名可用於所有文件作業,包括查詢、編製索引、建議和自動完成。

在下列查詢中,您可以改為將要求傳送至 hotel-samples-indexmy-alias ,而且會據以路由傳送要求。

POST /indexes/my-alias/docs/search?api-version=2023-10-01-preview
{
    "search": "pool spa +airport",
    "searchMode": any,
    "queryType": "simple",
    "select": "HotelId, HotelName, Category, Description",
    "count": true
}

如果您預期要更新生產索引,請在用戶端應用程式中指定別名,而不是索引名稱。 需要索引重建的案例概述於 Drop和rebuild an index中。

注意

您只能搭配文件作業使用別名,或取得及更新索引定義。 別名無法用來刪除索引、無法與分析文字 API 搭配使用,也不能當做 targetIndexName 索引器上的 。

別名的更新最多可能需要 10 秒的時間才能傳播到系統,因此您應該等待至少 10 秒,再執行已對應或最近對應至別名之索引中的任何作業。

交換索引

現在,每當您需要更新應用程式以指向新的索引時,您只需要更新別名中的對應。 更新需要 PUT,如建立或更新別名 (REST 預覽) 中所述

PUT /aliases/my-alias?api-version=2023-10-01-preview
{
    "name": "my-alias",
    "indexes": ["hotel-samples-index2"]
}

對別名進行更新之後,要求會自動開始路由至新的索引。

注意

別名的更新最多可能需要 10 秒的時間才能傳播到系統,因此您應該等待至少 10 秒,再刪除先前對應別名的索引。

另請參閱