在 Azure AI 搜尋服務中建立索引別名
重要
索引別名目前處於公開預覽狀態,並列於增補使用條款。
在 Azure AI 搜尋服務中,索引別名是次要名稱,可用來參考查詢、索引編製和其他作業的索引。 您可以建立對應至搜尋索引的別名,並在您參考索引名稱的位置以此取代別名名稱。 如果您需要變更應用程式所指向的索引,別名可增加作業彈性。 您可以只更新別名的對應,無須更新應用程式中的參考。
索引別名的主要目標是讓您更輕鬆地管理生產索引。 例如,如果您需要變更索引定義,例如編輯欄位或新增分析器,則必須建立新的搜尋索引,因為所有搜尋索引都是固定的。 這表示您必須卸除並重建索引,或者建立新的索引,然後將您的應用程式移轉至該索引。
您可以使用索引別名,而無須卸除和重建索引。 一般工作流程如下:
- 建立搜尋索引
- 建立可對應至搜尋索引的別名
- 讓應用程式將查詢/索引編製要求傳送至別名,而不是索引名稱
- 當您變更必須重建的索引時,請建立新的搜尋索引
- 當新索引準備就緒,請更新別名以對應至新的索引,要求即可自動路由傳送至新的索引
建立索引別名
您可以使用預覽 REST API、預覽 SDK,或透過 Azure 入口網站來建立別名。 別名包含別名的 name
,以及別名所對應的搜尋索引名稱。 您只能在 indexes
陣列中指定一個索引名稱。
您可以使用建立或更新別名 (REST 預覽) 來建立索引別名。
POST /aliases?api-version=2024-05-01-preview
{
"name": "my-alias",
"indexes": ["hotel-samples-index"]
}
將要求傳送至索引別名
建立別名後,您就可以開始使用此別名。 別名可用於所有文件作業,包括查詢、索引編製、建議和自動完成等作業。
在下列查詢中,您可以將要求傳送到 my-alias
,其會據此路由傳送,而無須將要求傳送到 hotel-samples-index
。
POST /indexes/my-alias/docs/search?api-version=2024-05-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=2024-05-01-preview
{
"name": "my-alias",
"indexes": ["hotel-samples-index2"]
}
更新別名之後,要求會開始自動路由傳送至新的索引。
注意
別名的更新可能需要 10 秒才能傳播到整個系統,因此請至少等候 10 秒鐘,再刪除別名先前所對應的索引。