你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

从以前的版本迁移语义排序代码

如果语义排序代码是针对早期预览版 API 编写的,请参阅本文中有关迁移到较新 API 版本所需进行的代码更改的内容。 语义排序器的中断性变更仅限于最新 API 中的查询逻辑,但如果代码是针对初始预览版编写的,则可能还需要更改语义配置。

中断性变更

有两项针对不同 REST API 版本的语义排序器的中断性变更:

  • 在 2021-04-30-preview 中,searchFields 被替换为 semanticConfiguration
  • queryLanguage 从 2023-07-01-preview 开始被忽略,但在 2024-11-01-preview 中被恢复用于查询重写

其他特定于版本的更新涉及新功能,但不会造成现有代码中断,因此不是中断性变更。

如果你使用的是 Azure SDK,你会发现多个 API 已随着时间的推移而被重命名。 SDK 更改日志提供了详细信息。

提供语义排序的 API 版本

请检查代码中的 REST API 版本或 SDK 包版本,以确认哪一个提供语义排序。 以下 API 版本对语义排序提供一定程度的支持。

发布类型 REST API 版本 语义排序器更新
initial 2020-06-30-preview 为搜索文档添加了 queryType=semantic
预览 2021-04-30-preview 添加了 semanticConfiguration 来创建或更新索引
预览 2023-07-01-preview 更新 semanticConfiguration。 从 2023 年 7 月 14 日开始,对 Microsoft 托管语义模型的更新使语义排序器与语种无关,有效地停用了用于语义排序的 queryLanguage 属性。 代码中没有中断性变更,但该属性被忽略。 已建议客户从代码中移除此属性。
预览 2023-10-01-preview 添加了 semanticQuery 来发送仅用于重新排序目的的查询。
稳定版 2023-11-01 正式发布。 引入了对 semanticConfiguration 的更改,这些更改已进展到稳定版。 如果代码是针对此版本或更高版本的,则会与较新的 API 版本兼容,除非你采用新的预览功能。
预览 2024-05-01-preview 没有变化
稳定版 2024-07-01 没有变化
预览 2024-09-01-preview 没有变化
预览 2024-11-01-preview 添加了查询重写。 如果使用查询重写(预览版),则 queryLanguage 属性现在是必需的。

Azure SDK 的更改日志

Azure SDK 具有独立的发布计划。 你应该检查更改日志,以确定哪些包提供语义功能以及是否有任何 API 已被重命名。

2024-11-01-preview

  • 为搜索文档添加了查询重写
  • 需要用于查询重写工作负荷的 queryLanguage。 有关有效值的列表,请参阅 REST API

2024-09-01-preview

与 2024-07-01 稳定版相比,语义排序语法没有变化。

2024-07-01

与 2024-05-01-preview 版相比,语义排序语法没有变化。

请勿使用此 API 版本。 它可实现与任何较新的 API 版本不兼容的矢量查询语法。

2024-05-01-preview

与 2024-03-01-preview 版相比,语义排序语法没有变化。

2024-03-01-preview

与 2023-10-01-preview 版相比,语义排序语法没有变化,但引入了矢量查询。 语义排序现在适用于来自混合查询和矢量查询的响应。 你可以对响应中任何可人工读取的文本字段应用重新排序(假设这些字段在 prioritizedFields 中列出)。

2023-11-01

  • 排除了 SemanticDebugsemanticQuery,其余与 2023-10-01-preview 版相同。

2023-10-01-preview

  • 添加 semanticQuery

2023-07-01-preview

  • 添加了 semanticErrorHandlingsemanticMaxWaitInMilliseconds
  • 为响应添加了许多与语义相关的字段,例如 SemanticDebugSemanticErrorMode
  • 忽略了 queryLanguage,它不再用在语义排序中。

从 2023 年 7 月 14 日开始,语义排序器与语种无关。 在预览版中,语义排序会降低与字段分析器指定的 querylanguage 不同的结果的优先级。 不过,queryLanguage 属性仍然适用于拼写更正以及该功能支持的语言的简短列表。

2021-04-30-preview

  • 语义支持通过搜索文档创建或更新索引预览 API 调用来实现。
  • 为搜索索引添加了 semanticConfiguration。 语义配置具有名称和优先字段列表。
  • 添加了“prioritizedFields”。

searchFields 属性不再用于确定字段的优先级。 在所有后续版本中,semanticConfiguration.prioritizedFields 取代 searchFields,成为指定使用哪些字段进行 L2 排序的机制。

2020-06-30-preview

  • 语义支持通过搜索文档预览 API 调用来实现。
  • 为查询请求添加了 queryType=semantic
  • 调整了 searchFields,这样就可以在查询类型是语义的情况下,可以通过 searchFields 属性确定语义排序器的字段输入的优先顺序。
  • 为查询响应添加了 captionsanswershighlights

后续步骤

通过运行语义查询来测试语义配置迁移。