在 SharePoint Server 中管理查询规则

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

在不使用任何自定义代码的情况下,搜索服务应用程序管理员、网站集管理员或网站所有者可以通过创建和管理查询规则来改进经典搜索结果。 查询规则可帮助搜索响应用户的意向。

在查询规则中,指定条件和相关操作。 当查询满足查询规则中的条件时,搜索系统将执行规则中指定的操作(如缩小结果范围或更改结果显示的顺序),从而改进搜索结果的相关性。 例如,查询规则条件可能是查询中的某个术语与 SharePoint Server 术语集中的某个特定术语相匹配,也可能是对搜索系统中的某个特定结果源(如视频)经常执行某个查询。 当满足了查询规则条件时,相关操作可能是在搜索结果的顶部显示某个特定项目。

可以为一个或多个结果源配置查询规则,且可以指定查询规则处于活动状态的时间段。

注意

查询规则还会在以下情况下影响 SharePoint Server 2019 中的 新式 搜索体验:

  • 规则中的操作是将单个结果提升到搜索结果的顶部。
  • 规则是为默认结果源定义的。
  • 该规则在搜索服务应用程序级别定义。

只有在以下情况下,用户才会在现代搜索体验中看到这样的提升结果:

  • 他们搜索了所有 SharePoint 的结果。
  • 搜索结果页将筛选为默认视图 () 的所有结果类型

在 SharePoint 服务器场中的不同级别创建查询规则

您可以为 Search Service 应用程序、网站集或网站创建查询规则。 下表显示了在各种情况下创建查询规则所需的权限以及可使用查询规则的位置。

查询规则的级别和权限

创建查询规则的级别 必须具有的权限 可使用查询规则的位置
Search Service 应用程序
Search Service 应用程序管理员
Web 应用程序中使用 Search Service 应用程序的所有网站集
网站集
网站集管理员
网站集中的所有网站
网站
网站所有者
网站

To add or edit a query rule, you must go to the Manage query rules page. Depending on the level at which you are creating the query rule, use one of the following procedures to go to the Manage query rules page.

转到 Search Service 应用程序的“管理查询规则”页

  1. 确认执行此过程的用户帐户是 Search Service 应用程序的管理员。

  2. In Central Administration, in the Application Management section, click Manage service applications.

  3. 单击要向其添加查询规则的 Search Service 应用程序。

  4. 在 Search Service 应用程序的“搜索管理”页上,找到“快速启动”中的“查询和结果”部分,单击“查询规则”。

转到网站集的"管理查询规则"页

  1. 确认执行此过程的用户帐户是网站集管理员。

  2. 在网站集的"设置"菜单上,单击"网站设置"。

  3. 在“网站设置”页的“网站集管理”部分,单击“搜索查询规则”

转到网站的"管理查询规则"页

  1. 确认执行此过程的用户帐户是网站的 Owners 组的成员。

  2. 在网站的"设置"菜单中,单击"网站设置"。

  3. 在"网站设置"页的"网站管理"部分,单击"查询规则"。

创建查询规则

  1. 指定此查询规则的结果来源。 Use the Select a Result Source menu, on the Manage Query Rules page.

  2. 单击“新建查询规则”

  3. Give the query rule a name. Use the Rule name field on the Add Query Rule page.

  4. If relevant, restrict this rule to queries performed on a particular result source. Click to expand the Context section, and under Query is performed on these sourcesselect one of the following:

  • 若要将查询规则应用于所有结果来源,请选择“所有来源”

  • To restrict the query rule to one or more specific result sources, select One of these sources. By default, the result source that you specified in step 1 is selected.

  1. If relevant, restrict the rule to be performed from a particular category —for example, that a query rule should fire only when a term from your managed navigation term set is included in the query. In the Context section, under Query is performed from these categories select one of the following:
  • To restrict the query rule to a particular category, click One of these categories and then add the category. 在“ 从分类导入 ”对话框中,选择在查询中包含该术语将导致触发查询规则的术语,然后单击“ 保存”。

  • 若要删除所有限制,请单击“全部类别”。

  1. If relevant, restrict the rule to be performed by a particular user segment. In the Context section, under Query is performed by these user segments select one of the following::
  • To restrict the query rule to a particular user segment, click One of these user segments and then add the user segment. Enter a title for the user segment and then click Add user segment term. 在“ 从分类导入 ”对话框中,选择在查询中包含该术语将导致触发查询规则的术语,然后单击“ 保存”。

  • 若要删除所有限制,请单击“全部用户细分”。

  1. Specify when a query makes this rule fire. You can have more than one condition, and the rule will fire when any condition is true. In the Query Conditions section do one of the following:
  • 选择触发查询规则的条件概述中列出的条件之一。

  • 添加备用条件。

  • Click Remove Condition to configure this query rule to fire for every query that users type at the level at which you are creating the rule. For example, if you are creating this rule for a site collection, click Remove Condition if you want this rule to fire for every query that users type inside any search box in the site collection.

  1. Specify the action to take when the query rule fires. In the Actions section you can:
  • Promote individual results so that they appear towards the top of search results. You can add several individual promoted results. When there is more than one promoted result, you can specify the relative ranking. To promote, click Add Promoted Result (in SharePoint 2010 Products this was called Best Bets). 在 “添加升级结果 ”对话框中,为升级的结果指定一个名称,并输入要提升的结果的 URL。 You can define that the URL is rendered as a banner instead of as a hyperlink.

  • Promote a group of search results, click Add Result Block. For more information, see Create and display a result block later in this article.

  • Change ranked search results, click Change ranked results by changing the query. For more information, see Change ranked search results later in this article.

  1. 若要让查询规则在特定时间段内有效,请单击“发布”,再指定时间段。

触发查询规则的条件概述

查询条件 说明 配置 示例
查询完全匹配关键字
如果希望查询规则在查询与您指定的词或短语完全匹配时触发,则选择此选项。
在"查询中包含这些短语之一"文本框中,键入一个或多个短语(用逗号分隔)。
You type "picture; pic" in the Query contains one of these phrases box. The query rule will fire when a user types "picture" or "pic" in a search box. The rule will not fire if a user types "pictures" or "sunny picture."
查询包含操作术语
如果希望查询规则在查询包含指示用户要执行的操作的术语时触发,则选择此选项。 该术语必须位于查询的开头或末尾。
操作术语可以是输入的多个短语之一。 操作术语也可以是从中导入术语的字典中的条目。
“操作术语是”这些短语 “文本框中键入”下载“一词。 当用户在搜索框中键入“下载 Contoso Electronics 数据表”时,用户可能不会搜索包含单词“download”、“Contoso”、“Electronics”和“datasheet”的文档。相反,用户可能正在尝试下载 Contoso Electronics 数据表。 当用户在搜索框中键入“下载 Contoso Electronics 数据表”时,将触发查询规则,并且仅将单词“Contoso”、“Electronics”和“datasheet”传递到搜索索引。
查询完全匹配词典
如果希望查询规则在查询与词典条目完全匹配时触发,则选择此选项。
From the ** Query contains an entry in this dictionary ** menu, select a dictionary. 若要指定其他字典,请单击“ 从分类导入”,然后在“ 从分类导入 ”对话框中,从术语集中选择术语,然后单击“ 保存”。
用户在搜索框中键入的词与预配置的人名词典中的条目匹配。
查询在源中更常见
如果希望查询规则在用户经常在您指定的其他结果源上发出查询时触发,则选择此选项。
在"更可能在此源中使用查询"菜单中,选择结果源。
In the Query is more likely to be used in this source menu, you select Local Video Results. The query rule will fire if a user types the word "training" in a search box and that word was frequently typed in a search box in the Videos vertical.
通常单击的结果类型
如果您希望在其他用户键入相同的查询后频繁地单击特定结果类型时触发查询规则,则请选中此选项。
在"通常单击的结果匹配结果类型"菜单中,选择结果类型。
In the Commonly clicked results match result type box, you select SharePoint MicroBlog post. If users frequently click a microblog post in search results, then in the Actions section, you might want to configure the most recent microblog post as the first promoted result, and the next most recent microblog post as the second promoted result.
高级查询文本匹配
如果您要使用将导致触发查询规则的正则表达式、短语或词典条目,则请选中此选项。
若要匹配特定格式的所有电话号码,请在"查询匹配此正则表达式"框中指定正则表达式。
若要匹配格式为 nnn-nnn-nnnn 的所有电话号码,请指定正则表达式“ (? (\d{3}) ) ?-? (\d{3}) - (\d{4}) ”。

创建并显示结果块

结果块是以组形式显示的多个搜索结果。 例如,对于包含"Fabrikam 销售报表"的查询,查询规则可能会使用分类字典将"Fabrikam"识别为客户,再显示一个结果块,其中包含客户关系管理 (CRM) 系统中与 Fabrikam 相关的结果。

当指定的查询条件适用时,你可以像升级特定结果一样升级结果块。

配置要对结果块运行的查询时,可使用查询变量。 查询变量是值在指定查询时未知的占位符。 不过,当查询运行时,此类信息就是已知的,可在系统向索引发送查询时使用。 例如,{User.Name} 表示键入查询的用户的显示名称,或 {searchBoxQuery} 表示用户在搜索框中键入的查询。 有关可用查询变量列表,请参阅 Query variables in SharePoint Server

如果不熟悉查询变量,可使用查询生成器来配置查询(请参阅以下过程中的第 3 步)。

创建结果块

  1. 在前述过程的第 8 步中,在“添加查询规则”页上的“操作”部分,单击“添加结果块”。

  2. Enter the title that shall appear in the result block in the Title field in the Block Title section. Enter a title for each language that's relevant.

  3. Configure the query that gives results for the block. In the Query section, click Launch Query Builder, and on the BASIC tab do the following:.

  • 从“选择查询”部分的下拉列表中选择结果来源,选择要搜索的内容。

  • Specify your query in the Query text box. You can select pre-defined query variables from the Keyword filter drop-down list, and then add them to the Query text box by clicking Add keyword filter.

  • If relevant, use property filters to query the content of managed properties that are set to queryable in the search schema. You can select managed properties from the Property filter drop-down list. Click Add property filter to add the filter to the query.

  • 单击“测试查询”,以测试查询。

  1. Specify how the search results within your result block should be sorted. Sorting of search results is case sensitive. On the SORTING tab, in the Sort by drop-down list, select a managed property, and then select Descending or Ascending. The list only contains managed properties that are set as sortable in the search schema. You can also sort by rank. To add more sorting levels, click Add sort level:

  2. 如果选择按排名进行排序,可以根据需要执行下列操作:

  • Select which model to use for ranking search results (this selection is optional). Use the Ranking Model drop-down list.

  • Define rules for dynamically changing the ordering of results. In the Dynamic ordering section, define when to change ranking by selecting a condition from the drop-down list and then specifying whether to promote or demote the result. To add more rules, click Add dynamic ordering rules

  1. 预览将由内容搜索 Web 部件在“ 测试 ”选项卡上运行的最终查询。预览基于原始查询模板,其中动态变量替换为当前值。 对查询的其他更改可能需要作为查询规则的一部分进行更改。 单击“显示更多”,以查看详细信息。
  • “查询模板”框显示应用于查询的查询模板的内容。

  • The Query template variables section shows the query variables that will be applied to the query, and the values of the variables that apply to the current page. You can type other values to test the effect they will have on the query. Click the Test Query button to preview the search results.

  1. Define which result source this result block should be applied to. Use the Search this Source drop-down list in the Query section.

  2. Define how many results ro show in the result block. Use the In the Items drop-down list, in the Query section.

  3. The result block will only display the number of search results that you specified in the previous step. However, you can add a SHOW MORE link at the bottom of the result block that will show all search results for the result block. To add a SHOW MORE link, expand the Settings section, select "More" link goes to the following URL, and then type a URL. 可以在此 URL 中使用查询变量,例如,http://www.<site>/search/results.aspx?k={subjectTerms}

  4. 跳过“路由”部分。

  5. 单击“确定”

更改排名搜索结果

排名模型将计算搜索结果的排序顺序。 您可通过升级或降级搜索结果中的项来更改此排名。 例如,对于包含"download toolbox"的查询,您可创建将单词"download"识别为一个操作术语的查询规则,并更改排名搜索结果来升级 Intranet 上的某个下载网站的 URL。 您还可根据若干变量(如文件扩展名或特定关键字)动态更改搜索结果的排序顺序。 通过更改查询的方式更改排名搜索结果具有安全修整和精简结果的优点。 此外,如果文档不再可用,搜索结果将不再显示。

通过更改查询更改排名搜索结果

  1. From step 8 of the procedure Create a query rule, on the Add Query Rule page, in the Actions section, click Change ranked results by changing the query. 此时会显示“ 生成查询 ”对话框。

  2. 在“基本”选项卡上,执行以下操作:

  • 从“选择查询”部分的下拉列表中选择结果来源,选择要搜索的内容。

  • Specify your query in the Query text box. You can select pre-defined query variables from the Keyword filter drop-down list, and then add them to the Query text box by clicking Add keyword filter.

  • If relevant, use property filters to query the content of managed properties that are set to queryable in the search schema. You can select managed properties from the Property filter drop-down list. Click Add property filter to add the filter to the query.

  • 单击“测试查询”,以测试查询。

  1. Specify how the search results within your result block should be sorted. Sorting of search results is case sensitive. On the SORTING tab, in the Sort by drop-down list, select a managed property, and then select Descending or Ascending. The list only contains managed properties that are set as sortable in the search schema. You can also sort by rank. To add more sorting levels, click Add sort level:

  2. 如果选择按排名进行排序,可以根据需要执行下列操作:

  • Select which model to use for ranking search results (this selection is optional). Use the Ranking Model drop-down list.

  • Define rules for dynamically changing the ordering of results. In the Dynamic ordering section, define when to change ranking by selecting a condition from the drop-down list and then specifying whether to promote or demote the result. To add more rules, click Add dynamic ordering rules

  1. 预览将由内容搜索 Web 部件在“ 测试 ”选项卡上运行的最终查询。预览基于原始查询模板,其中动态变量替换为当前值。 对查询的其他更改可能需要作为查询规则的一部分进行更改。 单击“显示更多”,以查看详细信息。
  • “查询模板”框显示应用于查询的查询模板的内容。

  • The Query template variables section shows the query variables that will be applied to the query, and the values of the variables that apply to the current page. You can type other values to test the effect they will have on the query. 单击“测试查询”按钮可预览搜索结果。

将查询规则设为非活动状态

在 Search Service 应用程序级别创建的查询规则将由使用 Search Service 应用程序的 Web 应用程序中的网站集和网站继承。 同样,在网站集级别创建的查询规则将由网站集中的网站继承。 如果您不希望将查询规则应用于继承它的网站,则可将查询规则设置为对于该网站是非活动的。

使查询规则对于某个网站是非活动的

  1. 确认执行此过程的用户帐户是网站的 Owners 组的成员。

  2. 在网站集上的“设置”菜单中,单击“网站设置”。

  3. 在"网站设置"页的"搜索"部分,单击"查询规则"。

  4. 在"管理查询规则"页的"选择结果源"菜单上,选择包含要将其设置为非活动的查询规则的结果源。

  5. 在"名称"列中,指向要将其设置为非活动的查询规则,单击出现的箭头,然后单击"设为非活动"。

对查询规则排名

如果 Search Service 应用程序、网站集或网站有多个活动的查询规则,则将为在相应级别执行的查询触发多个规则。 默认情况下,这些规则不会按指定的顺序触发。 可通过将您创建的查询规则添加到查询组来控制规则将触发的顺序。 为此,请选择将添加到组中的规则,然后指定这些规则在被触发时在组中的触发顺序。 您还可以阻止触发组中级别最低的查询规则,即使这些规则已被触发也是如此。

对网站集的查询规则排名

  1. 确认执行此过程的用户帐户是网站集管理员。

  2. 在网站集的“设置”菜单上,单击“网站设置”。

  3. 在"网站设置"页的"网站集管理"部分,单击"搜索查询规则"。

  4. 在"管理查询规则"页的"选择结果源"菜单上,选择包含要将其分组的查询规则的结果源。

  5. 对于创建的要添加到某个组中的所有查询规则,请指向相应规则,然后选中复选框。

    注意

    为此网站集创建的查询规则将列出在"已针对此网站集定义"部分。

  6. 单击"对选定的规则进行排序"。

  7. 在“ 顺序选择规则 ”对话框中,执行以下任一操作,然后单击“ 确定”:

  • 选中"将规则移动到具有此名称的新组",然后键入该组的名称。

  • 选择"将规则移到现有组",然后在下拉列表中选择该组。

  1. 在"管理查询规则"页上,执行以下操作:

  2. 若要更改某个规则在触发时在组中的触发顺序,请更改该规则的数字顺序。

  3. 若要阻止组中级别最低的查询规则触发,请在组中应最后触发的查询规则所对应的行中,在"操作"列的"继续/停止"下拉列表中,选择"停止"。

另请参阅

概念

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

SharePoint Server 中的搜索结果排名概述

Query variables in SharePoint Server