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