配置SharePoint 2013 Search 拓扑结构
在单台服务器上安装了 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上有利于性能的提升。
小结
配置完搜索拓扑之后,可以放心大胆的爬网了,具体可以参考这篇文章——
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~