自定义企业级搜索结果

在搜索框中输入查询后,浏览器会重定向到搜索结果页。您的查询词作为 URL 查询字符串的一部分传给此页。例如:

http://Site/SearchCenter/Pages/results.aspx?k=sharepoint&s=All%20Content

通过一个由此页上的搜索核心结果 Web 部件实例化的隐藏对象,将搜索查询提交给搜索组件。此隐藏对象随后将来自搜索组件的搜索结果返回结果页,以进行显示。搜索结果数据可以包括以下内容:

  • 相关的结果

  • 高可信度结果

  • 关键字和最佳匹配结果

  • 查询统计信息

搜索结果布局

结果页由多个 Web 部件组合而成,每个部件负责为用户输入的搜索查询显示结果或有关结果的信息的一个视图。

搜索结果由隐藏的对象作为 XML 数据返回。隐藏的对象随后将搜索结果 XML 数据传给结果页上不同的搜索 Web 部件。传递的 XML 数据的内容和格式取决于接收数据的 Web 部件。各个 Web 部件之后显示 XML 数据,这些数据按照为该 Web 部件的“XSL”属性指定的 XSL 转换设置格式。

自定义搜索结果布局

搜索结果 Web 部件类位于 Microsoft.Office.Server.Search.WebControls 命名空间中。但是,这些类是密封的,因此您无法创建从它们继承的 Web 部件以自定义功能。

若要自定义如何显示搜索结果页,您有以下选择:

  • 在设计模式下编辑搜索结果页布局。

  • 在 Web 部件工具窗格中编辑任何搜索结果 Web 部件的属性。

    有关此选择的详细信息,请参阅企业级搜索核心结果 XSLT 转换

  • 为要使用的结果页创建自定义级联样式表类。

也可以创建额外的结果页,并在页面上使用现有的搜索结果 Web 部件。可以进行相同的自定义。

如果无法通过前面列出的选择实现需要为结果视图执行的自定义级别,则必须创建与 Microsoft.Office.Server.Search.Query 对象模型直接通信,并且管理搜索结果数据的显示的自定义 Web 部件。

有关自定义 Web 部件的详细信息,请参阅生成自定义企业级搜索 Web 部件

有关使用企业级搜索查询对象模型的详细信息,请参阅Getting Started with the Search Query Object Model

搜索结果项

实际的搜索结果是使用图 1 中的三个 Web 部件显示的:

  • 搜索核心结果。为用户的搜索查询显示相关的结果。

  • **搜索高可信度结果 [1]。**显示高可信度结果。

  • 搜索高可信度结果 [2]。如果对于搜索词有任何关键字定义和最佳匹配链接,则显示这些定义和链接。

这些 Web 部件实际上是同一个 Web 部件(Microsoft.Office.Server.Search.WebControls 命名空间中的 CoreResultsWebPart 类)的实例。不同之处在于传给它们的结果数据,以及用于格式化这些结果的 XSLT。

下面的列表指出一些您可以通过修改搜索结果 XSLT 来进行的自定义:

  • 添加或移除用于检索和显示的属性。

  • 自定义如何在单个结果项中显示属性。

  • 自定义结果项的搜索词突出显示样式。

  • 自定义在搜索提供程序未为用户的查询返回任何结果时显示的消息。

有关搜索结果 XSLT 转换代码的详细信息,请参阅Search Results XSL Overview一节中的主题。

See Also

任务

如何:查看搜索结果 XML 数据

如何:查看和编辑搜索结果 XSLT 转换

如何:更改核心搜索结果中返回的属性

概念

企业级搜索核心结果 XSLT 转换