Share via


在 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"]
}

將要求傳送至索引別名

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

在下列查詢中,您可以將要求傳送到 my-alias,其會據此路由傳送,而無須將要求傳送到 hotel-samples-index

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
}

如果您預期會更新生產索引,請指定用戶端應用程式中的別名,而非索引名稱。 必須重建索引的案例在卸除並重建索引中有所概述。

注意

您只能搭配文件作業來使用別名,或藉此取得及更新索引定義。 別名無法用來刪除索引、無法與分析文字 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 秒鐘,再刪除別名先前所對應的索引。

另請參閱