在 SharePoint Server 中规划查询转换和结果排序

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-se订阅版本 no-img-sopMicrosoft 365 中的 SharePoint

您可将查询转换添加到 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 部件转换,然后由任何适用的查询规则转换,最后由结果源转换。 在结果源中配置转换时,你知道不会放弃或重写转换更改,因为结果源会最后转换查询。

使用查询生成器编写和测试查询转换

查询生成器可帮助您编写和测试查询转换。 若要生成查询,请使用关键字查询语言 (KeyQL) ,还可以添加查询变量。 可以通过为查询变量设置临时测试值在查询生成器中测试查询,运行查询和预览搜索结果。

有关生成搜索查询和 KeyQL 语法示例的详细信息,请参阅 在 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"时,将会应用该查询规则。 如果用户键入“图片”或“阳光图片”,则规则不适用。
查询包含操作术语 当查询包含指示用户正在尝试执行某些操作的单个单词或短语时应用查询规则。 该术语必须位于查询的开头或末尾,可以是动词、命令或筛选器。 查询包含“download”一词时,用户可能不是要寻找包含“download”一词的项,而是要尝试下载某些内容。
查询完全匹配词典 当查询完全匹配字典条目时应用查询规则。 此条目可以是术语库中的术语,也可以是人名字典中的条目。
源中更常用的查询 如果用户查询较当前查询更常用于不同的结果源,则应用查询规则。 此条件对用户在不同的结果源中输入的查询进行分析。 您可以创建一个查询规则来检查某查询是否更常在 视频 垂直搜索中执行。 如果是,则使视频结果更醒目。
通常单击的结果类型 如果查询通常以用户单击特定结果类型的结果而结束,则应用该查询规则。 在创建新的结果类型时,可指示应记录这些单击操作以将其用于查询规则。 如果这是人们经常选择结果类型“图片”的查询,则最好在结果块中提供与图片相关的结果。
高级查询文本匹配 当查询匹配正则表达式,应用查询规则。 它还允许你使用前面介绍的关键字 (keyword) 、字典和作术语条件的变体,但具有更高级的控制。 若要匹配格式为 nnn-nnn-nnnn 的所有电话号码,请指定正则表达式“ (? (\d{3}) ) ?-? (\d{3}) - (\d{4}) ”。

最后一步是指定查询规则在应用时应触发的作。 或者,还可以指定查询规则处于活动状态的开始和结束日期。

下表显示可用的查询规则操作。

查询规则操作 说明 示例
添加已升级的结果 在排名结果之上显示升级结果(在以前版本的 SharePoint Server 中称为"最佳匹配")。 当项目未编制索引或文档摘要不佳时,最好使用升级结果。 在其他情形下,可考虑更改结果的排名。 例如,对于“病假”查询,可以在所有排名结果上方添加一个指向人力资源网站的链接。
添加结果块 添加结果块,其中包含以特定方式与查询相关的小部分结果。 您可以提升结果块,也可以将其与其他搜索结果一起排序。

为结果块指定的查询转换可转换原始查询的副本。

您还可以指定应该用于显示结果块的显示模板。
对于包含“Contoso sales report”的查询,查询规则可以使用分类词典将“Contoso”识别为客户,然后从客户关系管理 (CRM) 系统中显示包含有关“Contoso”的结果的结果块。
通过更改查询更改排名结果 添加更改原始查询的查询转换。 例如,该转换可升级或降级特定结果。

更改搜索结果的排名(例如,根据其网站或 URL 提升相应的结果)是添加升级结果的常见替代方法。 通过更改查询来更改排名结果具有以下优点:产生的结果经过安全修整并且可精简。 此外,如果文档不再可用,搜索结果也会消失。 您可根据多个变量(如文件扩展名或特定关键字)动态更改搜索结果的排序顺序。 可以升级或降级结果,还可指定结果应升级或降级的程度。

有关详细信息,请参阅 SharePoint Server 中的搜索结果排名概述中的使用查询规则影响搜索结果的排名一节。

对于包含“download toolbox”的查询,查询规则可能会将“download”一词识别为操作术语,并提升指向您的 Intranet 上的特定下载网站的搜索结果。

在结果源中转换查询

对于每个结果源,可指定该结果源中的所有搜索结果应以特定方式转换。 例如,预配置的"本地视频结果"结果源使用查询转换以便仅从本地 SharePoint 索引中返回视频结果。

SharePoint Server 提供许多预配置的结果源,以及现成的预定义查询转换。 还可以创建新的结果源并对它们应用不同的查询转换。 可以为每个搜索提供程序创建多个结果源,并且可以对每个结果源设置不同的查询转换。

用户查询先由 Web 部件转换,然后由任何适用的查询规则转换,最后由结果源转换。 在结果源中配置转换时,你知道不会放弃或重写转换更改,因为结果源会最后转换查询。 您可在 Web 部件或结果块中重用结果源查询转换,还可以创建仅应用于特定结果源中的结果的查询规则或结果类型。

更改使用结果类型显示结果的方式

通过结果类型,您可以有条件地更改搜索结果的显示方式。 若要自定义一组相关结果的外观,可以创建 HTML 格式的显示模板并将该显示模板与结果类型关联。 您可以创建规则以指定何时显示该显示模板,并且可以设定这些规则的优先顺序。

搜索系统如何处理查询

当有人输入查询或选择触发查询的元素时,搜索系统将查询发送到查询处理组件。 此组件会查理该查询,然后将其发送给相应的搜索提供程序以检索结果。 搜索提供程序可以是本地搜索索引或远程源。 在从搜索提供程序收集结果后,查询处理组件将执行其他处理,然后返回结果以便可以显示这些结果。

搜索系统通过执行以下操作来处理查询:

  1. 应用任何 Web 部件转换。

  2. 应用任何查询规则。 查询规则操作可以转换原始查询,也可以触发针对结果块转换的并行查询。

  3. 对结果源应用任何查询转换。

  4. 分析查询并创建查询语法树以供内部使用。

  5. 通过执行断词、词干分解、拼写更正以及同义词扩展,对查询进行语言方面的处理。

  6. 将用户访问信息附加到查询。 这将指定要执行查询的用户以及该用户拥有的权限。

  7. 将查询发送到搜索索引或其他搜索提供程序。

  8. 收集和合并来自所有搜索提供程序的搜索结果并将其发送回查询处理组件。

  9. 根据结果类型评估搜索结果。 如果结果与特定结果类型相匹配,将使用您为该结果类型指定的显示模板显示结果。

  10. 应用其他安全修整(如果适用)。

另请参阅

在 SharePoint Server 中管理查询规则

在 SharePoint Server 中配置搜索的结果源

在 SharePoint Server 中管理搜索中心