在Azure AI 搜索中,索引别名是搜索索引的辅助名称。 可以创建映射到搜索索引的别名,并在引用索引名称的位置替换别名。 如果需要更改应用程序指向的索引,此功能可提供灵活性。 可以直接更新别名映射,而不是更新对生产代码中的索引名称的引用。
可以通过 HTTP 请求(POST、GET、PUT 或 DELETE)针对给定的别名资源在搜索服务上创建和管理别名。 别名是与搜索索引无关的独立服务级资源。 创建搜索索引后,可以创建映射到它的别名。
在使用别名之前,应用程序会将请求直接发送到 hotel-samples-index。
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "pool spa +airport",
"select": "HotelId, HotelName, Category, Description",
"count": true
}
使用别名后,应用程序会向my-alias发送请求,而my-alias映射到。
POST /indexes/my-alias/docs/search?api-version=2026-04-01
{
"search": "pool spa +airport",
"select": "HotelId, HotelName, Category, Description",
"count": true
}
支持的方案
只能将别名用于文档操作,或用于获取和更新索引定义。
别名不能用于删除索引或测试文本标记化,也不能作为targetIndexName索引器或知识源引用。
创建索引别名
创建别名会在别名和索引名称之间建立映射。 如果请求成功,则可以使用别名进行索引、查询和其他操作。
可以使用 REST API、Azure SDK 或 Azure 门户创建别名。 别名由别名的name部分和别名映射到的搜索索引的名称组成。 只能在数组indexes中指定一个索引名称。
可以创建的别名的最大数目因定价层而异。 有关详细信息,请参阅 索引别名限制。
使用最新的稳定版本的 别名 - 创建 (REST API) 创建索引别名。
POST /aliases?api-version=2026-04-01
{
"name": "my-alias",
"indexes": ["hotel-samples-index"]
}
将请求发送到索引别名
可以将别名用于所有文档操作,包括查询、索引、建议和自动完成。
以下查询将请求发送到my-alias,该请求已映射到搜索服务的实际索引。
POST /indexes/my-alias/docs/search?api-version=2026-04-01
{
"search": "pool spa +airport",
"searchMode": "any",
"queryType": "simple",
"select": "HotelId, HotelName, Category, Description",
"count": true
}
获取别名定义
此请求按名称返回现有别名对象的列表。
GET https://[service name].search.azure.cn/aliases?api-version=[api-version]&$select=name
api-key: [admin key]
此请求返回别名定义
GET https://[service name].search.azure.cn/aliases/my-alias?api-version=[api-version]
api-key: [admin key]
更新别名
别名的最常见更新是在基础索引替换为较新版本时更改索引名称。
使用 别名 - 创建或更新 (REST API) 更新别名。 以下示例演示如何将 my-alias 更新为指向 hotel-samples-index2 而非指向 hotel-samples-index。
PUT /aliases/my-alias?api-version=2026-04-01
{
"name": "my-alias",
"indexes": ["hotel-samples-index2"]
}
对别名的更新可能需要长达 10 秒才能传播到系统,因此请等待至少 10 秒,然后再删除之前映射别名的索引。
如果尝试删除当前映射到别名的索引,操作将失败,出现 400(错误请求)和错误消息,指出映射到该索引的别名(es)必须被删除或映射到其他索引,然后才能删除索引。