配置SharePoint 2013 Search 拓扑结构

时间:2024-01-17 10:30:20

在单台服务器上安装了 SharePoint Server 2013,并且创建了具有默认搜索拓扑的 Search Service 应用程序。在默认搜索拓扑中,所有搜索组件都位于承载管理中心的服务器上。SharePoint 2013中的搜索具备了非常强大的功能,但所消耗的资源也是巨大的。所以,在具备硬件条件下,合理的规划SharePoint 2013搜索拓扑结构是非常有必要的。

要规划搜索的拓扑结构,那么有必要先了解SharePoint Farm的拓扑结构。

规划SharePoint搜索拓扑结构

下图是我去年实施的一个SharePoint Farm,将Database和SharePoint的分离:

配置SharePoint 2013 Search 拓扑结构

在默认搜索拓扑中,所有搜索组件都位于承载管理中心的服务器上,进入到SharePoint Central Administration可以一看究竟,如下图默认的Search Application Topology:

配置SharePoint 2013 Search 拓扑结构

如今需要在此基础上配置搜索,考虑到SharePoint 2013搜索需要占用大量的资源,故再增加一台APP服务器,用来承载搜索和其他Service Application角色,拓扑结构如下所示:

配置SharePoint 2013 Search 拓扑结构

其中查询处理组件用来处理用户的请求,我将他部署在WFE服务器上,同时为了提高性能和效率,我也将索引组件部署在了WFE服务器上。

由于新增加的APP 服务器具备非常强劲的性能,将承载如下搜索组件

  • 分析处理组件
  • 内容处理组件
  • 爬网组件
  • 搜索管理组件

更改默认搜索拓扑

1.准备工作

SharePoint 2013更改默认的搜索拓扑必须使用PowerShell,在Central Administration中并没有提供界面。

首先你执行PowerShell(即登陆OS的账号)必须是如下两者之一:

  • 是 Farm Administrators 组的成员
  • 是 Search Service Application的管理员

并且确保没有启动任何爬网并且搜索索引为空。

详情:https://technet.microsoft.com/zh-CN/library/jj862356.aspx#begin

2.移动搜索组件

如果要将搜索组件从一台服务器移到另一台服务器,则先向搜索拓扑添加新的搜索组件,然后再删除旧的搜索组件。

具体的操作步骤如下:

  • 克隆活动搜索拓扑。
  • 将新的搜索组件添加到你最终希望其托管此搜索组件的服务器。
  • 激活搜索拓扑。此拓扑将具有一个不必要的搜索组件。
  • 确保当前活动拓扑运行正常。在"管理中心"的"搜索管理"页中查看搜索拓扑的状态或运行 Windows PowerShell cmdlet Get-SPEnterpriseSearchStatus。
  • 再次克隆搜索拓扑。
  • 删除不必要的搜索组件。
  • 再次激活搜索拓扑。

完整的PowerShell如下:

Add-PSSnapin Microsoft.SharePoint.PowerShell

# 1. 克隆一个激活的搜索拓扑

$ssa=Get-SPEnterpriseSearchServiceApplication

$active=Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active

$clone=New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active #此时新的搜索拓扑的状态为未激活

# 2.将新的搜索组件添加到你最终希望其托管此搜索组件的服务器

$app01 = Get-SPEnterpriseSearchServiceInstance -Identity "Your APP Server Name"

#New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchServiceInstance $app01#

#New-SPEnterpriseSearchCrawlComponent -SearchTopology $clone -SearchServiceInstance $app01#

#New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $app01#

New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $clone -SearchServiceInstance $app01

# 3.启动APP Server上的Search Service Instance

Start-SPEnterpriseSearchServiceInstance -Identity $app01

#4.激活搜索拓扑

Set-SPEnterpriseSearchTopology -Identity $clone

#5.因为无法在当前搜索拓扑状态为Active下进行后续操作,故再次克隆搜索拓扑

$ssa=Get-SPEnterpriseSearchServiceApplication

$active=Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active

$clone=New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active

#6得到要被删除的组件Id

$component=Get-SPEnterpriseSearchComponent -SearchTopology $clone -Identity "Your Component Name"

$componentId=$component.ComponentId

#7.移除搜索组件

Remove-SPEnterpriseSearchComponent -Identity $componentId.Guid -SearchTopology $clone -Confirm:$false

#再次激活新创建的搜素拓扑

Set-SPEnterpriseSearchTopology -Identity $clone

可以使用如下PowerShell来添加搜索组件

  • New-SPEnterpriseSearchAdminComponent
  • New-SPEnterpriseSearchAnalyticsProcessingComponent
  • New-SPEnterpriseSearchContentProcessingComponent
  • New-SPEnterpriseSearchCrawlComponent
  • New-SPEnterpriseSearchQueryProcessingComponent

执行完以上PowerShell脚本之后,即更改了默认的搜索拓扑,进入Central Administration一看究竟:

配置SharePoint 2013 Search 拓扑结构

可以看出App Server承载了耗费资源的搜索组件,并且查询处理组件和索引组件在同一台Server上有利于性能的提升。

小结

配置完搜索拓扑之后,可以放心大胆的爬网了,具体可以参考这篇文章——

探索 SharePoint 2013 Search功能