SharePoint 中的搜索功能

了解 SharePoint 中的搜索功能 中的可扩展性构建基块以及如何使用这些构建基块来符合你的使用案例。 SharePoint 中的搜索功能 使用户能够比以往更快和更容易地找到相关信息,同时便于搜索管理员自定义搜索体验。 它还提供多个 API 集用于更高级的自定义和解决方案。

请参阅以下文章,以获取对一般 SharePoint 开发概念的详细介绍;你会发现在继续操作之前查看以下内容十分有益:

搜索体系结构概述

SharePoint 中的搜索功能 包括各种改进和新功能。 使用此版本,SharePoint 中的搜索功能 可以重新构建到单个企业搜索平台。 搜索体系结构由以下方面组成:

这些方面由紧密工作以执行搜索操作的组件和数据库组成。 图 1 提供了搜索体系结构的不同方面的概述,以及在其中紧密工作以执行搜索操作的组件和数据库。

图 1. 搜索组件交互

搜索组件交互

有关更详细的视图,请参阅 技术关系图 -SharePoint 中的搜索和概述

爬网和内容处理

爬网和内容处理体系结构由以下内容组成:

爬网组件

对内容源进行爬网可从已爬网项目中收集已爬网属性和元数据,并将此信息发送到内容处理组件。

爬网数据库

包含有关爬网的项的信息,例如上次爬网时间、上次爬网 ID 和上次爬网期间的更新类型。

内容处理组件

爬网内容源以从爬网的项中收集爬网的属性和元数据,并将此信息发送到索引组件。

索引

索引组件接收来自内容处理组件的处理的项并将其写入搜索索引。 此组件还处理传入的查询、检索来自搜索索引的信息并将结果集发送回查询处理组件。

查询处理

查询处理组件分析并处理搜索查询和结果。 然后将处理的查询提交到索引组件,该组件将返回一组有关该查询的搜索结果。

搜索管理

搜索管理由搜索管理组件及其相应的数据库组成。

搜索管理组件

运行系统处理以供搜索,并添加和初始化搜索组件的新实例。

搜索管理数据库

存储搜索配置数据。

分析

分析体系结构由分析处理组件、分析报告数据库和链接数据库组成。

分析处理组件

执行搜索分析和使用情况分析。

链接数据库

存储通过内容处理组件提取的信息和搜索点击信息。

分析报告数据库

存储使用情况分析的结果。

事件存储

存储在前端捕获的使用情况事件。

搜索扩展点

SharePoint 中的搜索功能 体系结构提供了几个扩展点以支持自定义方案。 在本节中,我们将介绍这些点并显示你可以找到有关开发这些方案的详细信息的位置。

连接器框架

爬网组件通过调用与内容源交互的连接器或协议处理程序爬网内容以检索数据。 SharePoint 中的搜索功能 包括你可以用来自定义和构建连接器以爬网新内容源的连接器框架。 有关连接器框架体系结构以及如何扩展它的详细信息,请参阅 SharePoint 中的搜索连接器框架

自定义内容处理

在内容处理组件中,你可以使用内容扩充 Web 服务标注修改爬网的项的托管属性,然后再将其添加到搜索索引。 此 Web 服务标注将标注你创建的任何外部内容扩充 Web 服务。 有关详细信息,请参阅 使用内容扩充 Web 服务标注的自定义内容处理。 有关内容扩充 Web 服务的分步实现,请参阅 如何:使用 SharePoint 服务器 的内容扩充 Web 服务标注。 博客文章 使用内容扩充 Web 服务自定义 SharePoint 搜索体验 也是一个很好的资源

查询 API

SharePoint 中的搜索功能 提供了几个查询 API,这些 API 向你提供了许多用来访问搜索结果的方法,以便你可以在各种类型的自定义解决方案中返回搜索结果。

表 1 显示了可以用来对 SharePoint 中的搜索功能 编程的 API 以及它们所在的位置。

表 1. 搜索 API

API 名称 类库或架构和路径
.NET 客户端对象模型 (CSOM)
Microsoft.SharePoint.Client.Search.dll
%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\ISAPI
Silverlight CSOM
Microsoft.SharePoint.Client.Search.Silverlight.dll
%ProgramFiles%\Common Files\Microsoft Shared\Web 服务器扩展\15\TEMPLATE\LAYOUTS\ClientBin
JavaScript CSOM
SP.search.js
%ProgramFiles%\Common Files\Microsoft Shared\Web 服务器扩展\15\TEMPLATE\LAYOUTS
表述性状态转移 (REST) 服务终结点
http://server/_api/search/query
http://server/_api/search/suggest
服务器对象模型
Microsoft.Office.Server.Search.dll
%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\ISAPI

有关详细信息,请参阅 使用 SharePoint 搜索查询 API

分析

为了有助于发现和显示用户认为最有用且最相关的内容,分析处理组件既分析内容本身,也分析用户与内容的交互方式。 这些分析由计时器作业完成,此类作业负责执行分析生命周期任务。如在收到相关请求时启动、停止、暂停和恢复分析作业。 可以通过 Microsoft.Office.Server.Search.Analytics 命名空间操作这些计时器作业。 若要更深入地了解 SharePoint 中的分析功能,请参阅 SharePoint 中的分析处理概述

自定义排名模型

搜索结果可以按各种方式进行排序,其中一种就是按排名分数。 排名分数是由搜索引擎通过排名模型计算而来。 SharePoint 默认提供 14 个排名模型。 不过,如果对搜索结果的排序方式不满意,也可以使用自定义排名模型。 若要详细了解创建自定义排名模型并对其进行优化的过程,请参阅 自定义排名模型以提高 SharePoint 中的相关性

自定义安全修整

在查询时,SharePoint 中的搜索功能使用通过爬网组件获取的安全信息,对基于查询提交用户标识的搜索结果执行安全修整。 不过,在某些情况下,可能需要实现自定义安全修整。 SharePoint 提供了两个接口来完成此任务: ISecurityTrimmerPreISecurityTrimmerPost

预修整程序接口 (ISecurityTrimmerPre) 执行预查询评估,即将搜索查询重写为先添加安全信息,再匹配搜索查询与搜索索引。 相比之下,后修整程序接口 (ISecurityTrimmerPost) 执行后查询评估,即先删除搜索结果,再返回给用户。 有关这两个接口的详细信息,请参阅 SharePoint 中搜索的自定义安全修整。 有关如何实现安全修整程序接口的分步信息,请参阅 如何:对 SharePoint 服务器 搜索结果使用自定义安全修整程序

内容搜索 Web 部件

内容搜索 Web 部件是可以显示以前已进行爬网并添加到搜索索引的动态内容的 Web 部件。 该 Web 部件的每个实例都与搜索查询相关联,并显示该特定搜索查询的结果。 当用户浏览到包含内容搜索 Web 部件的页面时,会自动发出搜索查询,并从搜索索引返回对应的搜索结果。 无论何时想要显示由自动生成的搜索查询填充的内容,都可以使用内容搜索 Web 部件。 在某些情况下,你可能希望扩展内容搜索 Web 部件,该部件通过 Microsoft.Office.Server.Search.WebControls 命名空间公开为 ContentBySearchWebPart 。 若要了解有关如何扩展ContentBySearchWebPart 以便 Web 部件能够了解自定义属性的信息,请参阅 SharePoint 中的用户细分

使用导航和事件日志 REST 接口的搜索驱动移动应用

SharePoint 提供了下面两个新 REST 接口:导航和事件日志。 这两个接口可用于创建搜索驱动的移动应用,此类应用在运行非 Windows 操作系统的移动设备(如电话和平板电脑)上显示。 使用此功能,还可以其他方式在移动设备上显示产品目录,而不使用移动通道。 有关如何创建此类应用的详细示例,请参阅 如何:使用导航和事件日志记录 REST 接口生成搜索驱动的移动应用

本节内容

另请参阅