SharePoint 中的搜索功能
了解 SharePoint 中的搜索功能 中的可扩展性构建基块以及如何使用这些构建基块来符合你的使用案例。 SharePoint 中的搜索功能 使用户能够比以往更快和更容易地找到相关信息,同时便于搜索管理员自定义搜索体验。它还提供多个 API 集用于更高级的自定义和解决方案。
请参阅以下文章,以获取对一般 SharePoint 开发概念的详细介绍;你会发现在继续操作之前查看以下内容十分有益:
搜索体系结构概述
SharePoint 中的搜索功能 包括各种改进和新功能。使用此版本,SharePoint 中的搜索功能 可以重新构建到单个企业搜索平台。搜索体系结构由以下方面组成:
这些方面由紧密工作以执行搜索操作的组件和数据库组成。图 1 提供了搜索体系结构的不同方面的概述,以及在其中紧密工作以执行搜索操作的组件和数据库。
图 1. 搜索组件交互
若要获取更详细的视图,请参阅技术图表 - 搜索和 SharePoint 中的搜索功能概述。
爬网和内容处理
爬网和内容处理体系结构由以下内容组成:
爬网组件
对内容源进行爬网可从已爬网项目中收集已爬网属性和元数据,并将此信息发送到内容处理组件。
爬网数据库
包含有关爬网的项的信息,例如上次爬网时间、上次爬网 ID 和上次爬网期间的更新类型。
内容处理组件
爬网内容源以从爬网的项中收集爬网的属性和元数据,并将此信息发送到索引组件。
索引
索引组件接收来自内容处理组件的处理的项并将其写入搜索索引。此组件还处理传入的查询、检索来自搜索索引的信息并将结果集发送回查询处理组件。
查询处理
查询处理组件分析并处理搜索查询和结果。然后将处理的查询提交到索引组件,该组件将返回一组有关该查询的搜索结果。
搜索管理
搜索管理由搜索管理组件及其相应的数据库组成。
搜索管理组件
运行系统处理以供搜索,并添加和初始化搜索组件的新实例。
搜索管理数据库
存储搜索配置数据。
分析
分析体系结构由分析处理组件、分析报告数据库和链接数据库组成。
分析处理组件
执行搜索分析和使用情况分析。
链接数据库
存储通过内容处理组件提取的信息和搜索点击信息。
分析报告数据库
存储使用情况分析的结果。
事件存储
存储在前端捕获的使用情况事件。
搜索扩展点
SharePoint 中的搜索功能 体系结构提供了几个扩展点以支持自定义方案。在本节中,我们将介绍这些点并显示你可以找到有关开发这些方案的详细信息的位置。
连接器框架
爬网组件通过调用与内容源交互的连接器或协议处理程序爬网内容以检索数据。SharePoint 中的搜索功能 包括你可以用来自定义和构建连接器以爬网新内容源的连接器框架。有关连接器框架体系结构以及如何扩展它的详细信息,请参阅 SharePoint 中的搜索连接器框架。
自定义内容处理
在内容处理组件中,你可以使用内容扩充 Web 服务标注修改爬网的项的托管属性,然后再将其添加到搜索索引。此 Web 服务标注将标注你创建的任何外部内容扩充 Web 服务。有关详细信息,请参阅 使用内容扩充 Web 服务标注进行自定义内容处理。有关内容扩充 Web 服务的分步实现,请参阅 如何:对 SharePoint Server 使用内容扩充 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 server extensions\15\TEMPLATE\LAYOUTS\ClientBin |
JavaScript CSOM |
SP.search.js %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\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 提供下面两个接口来完成此任务:ISecurityTrimmerPre 和 ISecurityTrimmerPost。
预修整程序接口 (ISecurityTrimmerPre) 执行预查询评估,即将搜索查询重写为先添加安全信息,再匹配搜索查询与搜索索引。 相比之下,后修整程序接口 (ISecurityTrimmerPost) 执行后查询评估,即先删除搜索结果,再返回给用户。 若要详细了解这两个接口,请参阅适用于 SharePoint 中搜索功能的自定义安全修整。 若要逐步了解如何实现 Security Trimmer 接口,请参阅如何:对 SharePoint Server 搜索结果使用自定义 Security Trimmer。
内容搜索 Web 部件
内容搜索 Web 部件是可以显示之前爬网并添加到搜索索引的动态内容的 Web 部件。Web 部件的每个实例均与搜索查询相关联并显示有关该特定搜索查询的结果。当用户浏览到包含内容搜索 Web 部件的页面时,将自动发布搜索查询,并从搜索索引中返回相应的搜索结果。你可以在想要显示由自动生成的搜索查询填充的内容时使用内容搜索 Web 部件。在某些情况下,你可能想要展开内容搜索 Web 部件(通过 Microsoft.Office.Server.Search.WebControls 命名空间公开为 ContentBySearchWebPart)。若要了解如何扩展 ContentBySearchWebPart,以便 Web 部件可以理解自定义属性,请参阅 SharePoint 中的用户划分。
使用导航和事件日志 REST 接口的搜索驱动移动应用
SharePoint 提供了下面两个新 REST 接口:导航和事件日志。 这两个接口可用于创建搜索驱动的移动应用,此类应用在运行非 Windows 操作系统的移动设备(如电话和平板电脑)上显示。 使用此功能,还可以其他方式在移动设备上显示产品目录,而不使用移动通道。 有关如何创建此类应用的详细示例,请参阅如何:使用导航和事件日志 REST 接口生成搜索驱动的移动应用。