你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置语义排序器并在搜索结果中返回描述文字
语义排序循环访问初始结果集,应用 L2 排序方法,该方法将语义上最相关的结果提升到堆栈顶部。 还可以获取语义标题,其中突出显示了最相关的术语和短语,以及语义答案。
本文介绍如何配置搜索索引进行语义重新调整。
先决条件
基本层或更高层级上的搜索服务,具体取决于区域可用性。
已为你的搜索服务启用语义排序器。
包含富文本内容的现有搜索索引。 语义排名适用于字符串(非函数)字段,最适合信息性或描述性内容。
选择客户端
可以使用以下任何工具和软件开发工具包 (SDK) 添加语义配置:
- Azure 门户,使用索引设计器添加语义配置。
- 包含 REST 客户端的 Visual Studio Code
- 用于 .NET 的 Azure SDK
- Azure SDK for Python
- Azure SDK for Java
- Azure SDK for JavaScript
添加语义配置
语义配置是索引中的一个部分,用于为语义排名建立字段输入。 可以随时添加或更新语义配置,而无需重新生成。 如果创建多个配置,可以指定一个默认值。 查询时,在查询请求上指定语义配置,或将其留空以使用默认值。
语义配置具有一个名称和以下属性:
properties | 特征 |
---|---|
“标题”字段 | 一个短字符串,理想情况下少于 25 个单词。 此字段可以是文档的标题、产品名称或唯一标识符。 如果你没有合适的字段,请将其留空。 |
内容字段 | 自然语言形式的较长文本块,受机器学习模型的最大标记输入限制的约束。 常见的示例包括文档正文、产品说明或其他自由格式文本。 |
关键字字段 | 关键字(例如文档上的标记)的列表,或者项的类别等描述性词语。 |
只能指定一个标题字段,但可以拥有所需任意数量的内容和关键字字段。 对于内容和关键字字段,请按优先级顺序列出字段,因为优先级较低的字段可能会被截断。
在所有语义配置属性中,你分配的字段必须:
- 特性化为
searchable
和retrievable
- 是
Edm.String
或Collection(Edm.String)
类型的字符串。Edm.ComplexType
的字符串子字段
从预览版迁移
如果你的语义排名代码使用的是预览版 API,请参阅本部分,其中介绍了如何迁移到稳定版本。 可以检查更改日志以验证正式版:
- 2024-07-01 (REST)
- 用于 .Net (11.5) 的 Azure SDK 的更改日志
- 用于 Python (11.4) 的 Azure SDK 的更改日志
- 用于 Java (11.6) 的 Azure SDK 的更改日志
- 用于 JavaScript (12.0) 的 Azure SDK 的更改日志
语义排序器的 queryLanguage
从 2023 年 7 月 14 日起,语义排序器与语种无关。 它可以对由多语言内容组成的结果进行重新排名,而不偏向特定语言。 在预览版本中,语义排名会降低与字段分析器指定的语言不同的结果的优先级。
如果将其用于语义排名,请停止在代码中使用 queryLanguage
。 queryLanguage
属性仍适用于拼写更正等功能,但不适用于语义排名。
用于语义排名符的 searchFields
对于 REST API 和面向版本及更高版本 2021-04-30-Preview
的所有 SDK 包,该 searchFields
属性不再用于语义排名。
请改用 semanticConfiguration
属性(在搜索索引中)来确定在语义排名中使用哪些搜索字段。 若要指定字段优先级,请按照本文中的说明,在索引架构中添加 semanticConfiguration
。
如果使用查询请求将全文搜索限制为命名字段列表,可以保留 searchFields
。
后续步骤
通过运行语义查询来测试语义配置。