若要提供适合用户查询的搜索结果,有时必须更改查询。 例如,假设为“图片”创建垂直搜索。 当某人在“图片”垂直中键入查询时,必须更改查询,使其仅返回“图片”搜索结果。
若要更改查询,请使用查询生成器配置查询转换。 可以配置查询转换以替换查询的属性,例如查询将用于获取搜索结果 的结果源 ,或者查询在显示搜索结果时将使用的排序顺序。 转换还会使用可配置的查询模板替换查询的文本。 查询模板是将替换查询文本的文本,模板可以包含查询变量。
查询变量是值的占位符。 当转换将查询的文本替换为查询模板时,它还会将模板中的查询变量替换为特定值。
转换将上下文查询变量替换为与查询上下文相关的值。 下表显示了上下文查询变量的一些示例。
转换将替换此上下文查询变量 |
借助这一 |
---|---|
{User.Name} |
键入查询的用户的名称 |
{Site.URL} |
用户键入值的网站 |
{Today} |
当天的日期 |
转换会将绑定的查询变量替换为用户查询中的某些文本。 下表显示了绑定查询变量的一些示例。
转换替换此绑定查询变量 |
借助这一 |
---|---|
{searchBoxQuery} |
用户键入的查询 |
{searchTerms} |
用户键入的查询,如最近转换所更改 |
向查询添加限制时(例如,将查询限制为特定内容类型时),可以使用绑定的查询变量。 例如,对于图片垂直搜索,可以使用查询模板“{searchTerms} contenttype:picture”配置向查询文本添加“contenttype:picture”的查询转换。 如果用户在该垂直方向键入查询“moon”,则转换会将“{searchTerms}”替换为“moon”。 因此,查询转换会将查询更改为“moon contenttype:picture”。
可以在三个位置配置查询转换:
-
在 Web 部件中,例如搜索结果 Web 部件。 无需对其他位置的查询进行相同的更改时,在 Web 部件中配置转换。
-
在 查询规则中,该规则指定仅在满足某些条件时才执行某些操作。 其中两个操作使用转换来更改查询:
-
在搜索结果页上添加结果块。 此操作创建查询的副本,其转换仅更改副本。
-
更改排名结果。 此操作将更改用户键入的查询。
-
-
在查询用于获取搜索结果的结果源中。
用户查询由 Web 部件转换,然后由应用的任何查询规则进行转换,最后由结果源进行转换。 因此,在结果源中配置转换时,你知道不会放弃或重写转换更改,因为结果源会最后转换查询。 例如,若要确保图片垂直搜索仅返回图片,请在结果源中配置相应的转换,然后将垂直搜索中的 Web 部件配置为使用该结果源。
有关详细信息,请参阅 TechNet 上的 查询处理概述 。