在 SharePoint Server 中规划查询转换和结果排序
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
您可将查询转换添加到 Web 部件,添加在满足特定条件时转换查询的查询规则,还可以转换定向到某一结果源的所有查询,以创建专门的搜索体验。
SharePoint Server 包含许多预先设计的搜索体验或垂直搜索,如"视频"、"人员"和"对话"。 所有这些都包含预定义的查询转换,以优化搜索体验。 还可以设计自己的搜索体验,以包含自己的查询转换,例如"音乐"或"图片"。
了解查询转换和查询变量
您可以配置查询转换来替换查询的特定属性,例如查询将用于从中获取搜索结果的结果源,或者在显示搜索结果时将使用的排序顺序。
查询转换可包含查询变量。 查询变量是值的占位符,在实际运行查询时,查询变量会替换为特定值。
下表显示查询变量的一些示例。
查询转换将此查询变量: | 替换为: |
---|---|
{User.Name} | 键入查询的用户的名称。 |
{Site.URL} | 用户在其中键入查询的网站。 |
{Today} | 今天的日期。 |
{SearchBoxQuery} | 用户键入的查询。 |
{searchTerms} | 用户键入的查询,随最新的转换而更改。 |
有关所有可用查询变量的概述,请参阅 Query variables in SharePoint Server。
当查询转换替换传入查询时,它将使用 查询模板 。 查询模板是包括查询变量的查询,例如 {searchTerms} contenttype:picture。
例如,如果要创建仅在搜索结果中返回图片的 Pictures 垂直搜索,则可以配置使用查询模板"{searchTerms} contenttype:picture"的查询转换,以便将"contenttype:picture"添加到所有查询中。 如果之后用户在 Pictures 垂直搜索中键入查询"moon",该转换会将查询变量"{searchTerms}"替换为"moon",并将该查询更改为"moon contenttype:picture"。
可在三个位置配置查询转换:
在 Web 部件中
在查询规则中
在结果源中
用户查询先由 Web 部件转换,然后由任何适用的查询规则转换,最后由结果源转换。 在结果源中配置转换时,您可以确定不会丢弃或重写转换更改,因为结果源最后一个转换查询。
使用查询生成器编写和测试查询转换
查询生成器可帮助您编写和测试查询转换。 为了生成查询,您可以使用关键字查询语言 (KQL),也可以添加查询变量。 可以通过为查询变量设置临时测试值在查询生成器中测试查询,运行查询和预览搜索结果。
若要详细了解如何生成搜索查询和 KQL 语法示例,请参阅在 SharePoint 2013 中生成搜索查询 (MSDN)。 若要概览所有可用查询变量,请参阅 Query variables in SharePoint Server。
为 Web 部件转换查询
您可以在搜索 Web 部件(如内容搜索 Web 部件和搜索结果 Web 部件)中转换查询。 Web 部件上的查询转换可由查询规则或结果源上的查询转换替代。
Web 部件中的查询转换最常用于指定应将查询发送至的结果源。 例如,如果要创建自定义搜索体验以便仅搜索图片,则应先使用仅返回图片的查询转换创建结果源。 然后应创建具有以下查询转换的 Web 部件:该查询转换可将在该 Web 部件中运行的任何查询改为使用新的 Pictures 结果源,而不是默认结果源。
在 Web 部件中使用查询转换的另一常见用法是进行特定于一个 Web 部件的更改。 例如,创建 Pictures 结果源后,可添加一个 Web 部件,其中包含使用 Pictures 结果源的查询转换,并将搜索结果限制为仅显示最近修改的图片。
使用查询规则转换查询
可使用查询规则尝试捕获用户查询背后的真实意图,并返回更符合该意图的结果。 对于每个查询规则,可指定在哪些条件下应用该规则,以及在应用该规则时,应触发哪些操作。 通常情况下,您可以创建应用于一个网站的查询规则,但也可以创建应用于网站集或 Search Service 应用程序中的所有网站集的查询规则。
创建查询规则的第一步是指定该规则的 上下文 。 最低要求是指定为了应用该查询规则,查询必须针对的结果源。 例如,若要创建仅适用于人员搜索的规则,应指定上下文是结果源 本地人员结果 。 或者,您也可以在查询规则的上下文中包含用户区段或主题类别。
下一步是指定将导致应用该规则的 条件 。 如果希望查询规则应用于所有查询,则可移除所有条件。
下表显示可用的查询规则条件。
查询规则条件 | 说明 | 示例 |
---|---|---|
查询完全匹配关键字 | 在查询完全匹配您指定的字或短语时,应用该查询规则。 | 您将"picture; pic"指定为关键字。 当用户在搜索框中键入查询"picture"或"pic"时,将会应用该查询规则。 如果用户键入"pictures"或"sunny picture",则不会应用该规则。 |
查询包含操作术语 | 当查询包含指示用户正在尝试执行某些操作的单个单词或短语时应用查询规则。 该术语必须位于查询的开头或末尾,可以是动词、命令或筛选器。 | 查询包含“download”一词时,用户可能不是要寻找包含“download”一词的项,而是要尝试下载某些内容。 |
查询完全匹配词典 | 当查询完全匹配字典条目时应用查询规则。 此条目可以是术语库中的术语,也可以是人名字典中的条目。 | |
源中更常用的查询 | 如果用户查询较当前查询更常用于不同的结果源,则应用查询规则。 此条件对用户在不同的结果源中输入的查询进行分析。 | 您可以创建一个查询规则来检查某查询是否更常在 视频 垂直搜索中执行。 如果是,则使视频结果更醒目。 |
通常单击的结果类型 | 如果查询通常以用户单击特定结果类型的结果而结束,则应用该查询规则。 在创建新的结果类型时,可指示应记录这些单击操作以将其用于查询规则。 | 如果用户在查询中通常单击“图片”结果类型,则在结果块中提供与图片相关的结果可能是合适的。 |
高级查询文本匹配 | 如果查询匹配正则表达式,则应用该查询规则。 它还允许您使用关键字的变体、前面介绍的词典和操作术语条件,但具有更高级的控制。 | 若要匹配格式为 nnn-nnn-nnnn 的所有电话号码,请指定正则表达式“ (? (\d{3}) ) ?-? (\d{3}) - (\d{4}) ”。 |
最后一步是指定在应用查询规则时,它应触发哪些 操作 。 或者,还可以指定查询规则处于活动状态的开始和结束日期。
下表显示可用的查询规则操作。
查询规则操作 | 说明 | 示例 |
---|---|---|
添加已升级的结果 | 在排名结果之上显示升级结果(在以前版本的 SharePoint Server 中称为"最佳匹配")。 当某项目未编入索引或者它的文档摘要很差时,最好使用升级结果。 在其他情形下,可考虑更改结果的排名。 | 例如,对于“sick leave”查询,可在所有排名结果之上添加指向人力资源网站的链接。 |
添加结果块 | 添加结果块,其中包含以特定方式与查询相关的小部分结果。 您可以提升结果块,也可以将其与其他搜索结果一起排序。 为结果块指定的查询转换可转换原始查询的副本。 您还可以指定应该用于显示结果块的显示模板。 |
对于包含“Contoso sales report”的查询,查询规则可以使用分类词典将“Contoso”识别为客户,然后从客户关系管理 (CRM) 系统中显示包含有关“Contoso”的结果的结果块。 |
通过更改查询更改排名结果 | 添加更改原始查询的查询转换。 例如,该转换可升级或降级特定结果。 更改搜索结果的排名(例如,根据其网站或 URL 提升相应的结果)是添加升级结果的常见替代方法。 通过更改查询来更改排名结果具有以下优点:产生的结果经过安全修整并且可精简。 此外,如果文档不再可用,搜索结果将消失。 您可根据多个变量(如文件扩展名或特定关键字)动态更改搜索结果的排序顺序。 可以升级或降级结果,还可指定结果应升级或降级的程度。 有关详细信息,请参阅 SharePoint Server 中的搜索结果排名概述中的使用查询规则影响搜索结果的排名一节。 |
对于包含“download toolbox”的查询,查询规则可能会将“download”一词识别为操作术语,并提升指向您的 Intranet 上的特定下载网站的搜索结果。 |
在结果源中转换查询
对于每个结果源,可指定该结果源中的所有搜索结果应以特定方式转换。 例如,预配置的"本地视频结果"结果源使用查询转换以便仅从本地 SharePoint 索引中返回视频结果。
SharePoint Server 提供大量预配置并包含现成的预定义查询转换的结果源。 还可以创建新的结果源并对它们应用不同的查询转换。 可以为每个搜索提供程序创建多个结果源,并且可以对每个结果源设置不同的查询转换。
用户查询先由 Web 部件转换,然后由任何适用的查询规则转换,最后由结果源转换。 在结果源中配置转换时,您可以确定不会丢弃或重写转换更改,因为结果源最后一个转换查询。 您可在 Web 部件或结果块中重用结果源查询转换,还可以创建仅应用于特定结果源中的结果的查询规则或结果类型。
更改使用结果类型显示结果的方式
通过结果类型,您可以有条件地更改搜索结果的显示方式。 若要自定义一组相关结果的外观,可以创建 HTML 格式的显示模板并将该显示模板与结果类型关联。 您可以创建规则以指定何时显示该显示模板,并且可以设定这些规则的优先顺序。
搜索系统如何处理查询
当有人输入查询或单击触发查询的元素后,搜索系统会将该查询发送给查询处理组件。 此组件会查理该查询,然后将其发送给相应的搜索提供程序以检索结果。 搜索提供程序可以是本地搜索索引或远程源。 在从搜索提供程序收集结果后,查询处理组件将执行其他处理,然后返回结果以便可以显示这些结果。
搜索系统通过执行以下操作来处理查询:
应用任何 Web 部件转换。
应用任何查询规则。 查询规则操作可以转换原始查询,也可以触发针对结果块转换的并行查询。
对结果源应用任何查询转换。
分析查询并创建查询语法树以供内部使用。
通过执行断词、词干分解、拼写更正以及同义词扩展,对查询进行语言方面的处理。
将用户访问信息附加到查询。 这将指定要执行查询的用户以及该用户拥有的权限。
将查询发送到搜索索引或其他搜索提供程序。
收集和合并来自所有搜索提供程序的搜索结果并将其发送回查询处理组件。
根据结果类型评估搜索结果。 如果结果与特定结果类型相匹配,将使用您为该结果类型指定的显示模板显示结果。
应用其他安全修整(如果适用)。