在單台服務器上安裝了 SharePoint Server 2013,並且創建了具有默認搜索拓撲的 Search Service 應用程序。在默認搜索拓撲中,所有搜索組件都位於承載管理中心的服務器上。SharePoint 2013中的搜索具備了非常強大的功能,但所消耗的資源也是巨大的。所以,在具備硬件條件下,合理的規划SharePoint 2013搜索拓撲結構是非常有必要的。
要規划搜索的拓撲結構,那么有必要先了解SharePoint Farm的拓撲結構。
規划SharePoint搜索拓撲結構
下圖是我去年實施的一個SharePoint Farm,將Database和SharePoint的分離:
在默認搜索拓撲中,所有搜索組件都位於承載管理中心的服務器上,進入到SharePoint Central Administration可以一看究竟,如下圖默認的Search Application Topology:
如今需要在此基礎上配置搜索,考慮到SharePoint 2013搜索需要占用大量的資源,故再增加一台APP服務器,用來承載搜索和其他Service Application角色,拓撲結構如下所示:
其中查詢處理組件用來處理用戶的請求,我將他部署在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一看究竟:
可以看出App Server承載了耗費資源的搜索組件,並且查詢處理組件和索引組件在同一台Server上有利於性能的提升。
小結
配置完搜索拓撲之后,可以放心大膽的爬網了,具體可以參考這篇文章——