在 SharePoint Server 中管理搜索组件
**上一次修改主题:**2017-09-08
**摘要:**了解如何使用 Windows PowerShell 来管理现有搜索拓扑中的搜索组件,其中 SharePoint Server 搜索索引不是空的。按照这些过程操作可以扩展或收缩 Search Service 应用程序的搜索拓扑。
参考本文中的过程和示例的前提是,已安装 SharePoint ServerSharePoint Server 2016 和 Search Service 应用程序且存在现有搜索拓扑,同时 SharePoint Server 搜索索引不是空的。如果 SharePoint Server 和 Search Service 应用程序是新安装的,且 SharePoint Server 搜索索引是空的,请按在 SharePoint Server 中更改默认搜索拓扑中的过程执行操作。
本文中的过程适用于下列搜索组件:
分析处理组件
内容处理组件
爬网组件
搜索管理组件
查询处理组件
若要了解索引组件管理过程,请参阅在 SharePoint Server 中管理索引组件。
本文内容:
开始之前
在服务器上启动搜索服务实例
检索活动搜索拓扑
克隆活动搜索拓扑
添加搜索组件
删除搜索组件
移动搜索组件
激活搜索拓扑
开始之前
开始操作之前,请查看以下先决条件。
已安装 SharePoint Server,并且已创建具有搜索拓扑的 Search Service 应用程序。该 Search Service 应用程序处于正常运行的状态而且未因为任何原因而暂停。
执行本文中的过程的用户帐户是 Farm Administrators 组的成员。
你已规划目标搜索拓扑。
要在其上托管搜索组件的所有服务器上均安装了 SharePoint Server。已将这些服务器添加到场中,并且你是所有这些服务器的管理员。你可以新建应用程序服务器,也可以在现有部署中定义应用程序服务器。
重要
本文中的过程使用 Microsoft PowerShell。您可在服务器场中的任何服务器上运行 Microsoft PowerShell 命令。但是,如果您要执行多个搜索拓扑过程,则应对所有 Microsoft PowerShell 命令使用相同的 SharePoint 2016 命令行管理程序,以便可在各个命令之间共享 Microsoft PowerShell 对象引用。
在服务器上启动搜索服务实例
向新的服务器添加搜索组件之前,必须先启动服务器上的搜索服务实例。搜索服务实例将启动搜索服务(OSearch16 和 SPSearchHostController)需要使用的所有 Windows 服务。
启动搜索服务实例
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
在场中的一个服务器上启动 SharePoint 命令行管理程序。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
$<host n> = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>" Start-SPEnterpriseSearchServiceInstance -Identity $<host n>
其中:
$<host n> 指定搜索服务实例的 PowerShell 对象引用。
*<服务器名称>*指定想要对其添加索引组件的服务器。 输入的值必须为
12345678-90ab-cdef-1234-567890bcdefgh
形式的有效 GUID;服务器的有效名称(例如,myserver1);或有效 SearchServiceInstance 对象的实例。
例如:
$hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1" $hostB = Get-SPEnterpriseSearchServiceInstance -Identity "myserver2" Start-SPEnterpriseSearchServiceInstance -Identity $hostA Start-SPEnterpriseSearchServiceInstance -Identity $hostB
添加搜索组件时,使用引用 ($<host n>) 指定目标服务器。
请等待所有搜索服务实例运行。对于每个搜索服务实例,请在 Microsoft PowerShell 命令提示符处,键入以下命令,直至此命令返回“联机”状态:
Get-SPEnterpriseSearchServiceInstance -Identity $<host n>
例如:
Get-SPEnterpriseSearchServiceInstance -Identity $hostA TypeName : SharePoint Server Search Description : Index content and serve search queries Id : 82ce8815-ecbd-4cf3-a98e-33f20bd86039 Server : SPServer Name=myserver1.example.com Service : SearchService Name=OSearch16 Role : None Status : Online
检索活动搜索拓扑
若要查看 Search Service 应用程序的活动搜索拓扑,必须使用 Microsoft PowerShell。
查看活动搜索拓扑
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa $active
该命令将返回有关活动拓扑的信息,例如: TopologyId :2d7bb046-1ad4-43a9-9984-754c4551a3ec CreationDate :1/25/2016 3:06:00 AM State :Active ComponentCount :6
检索搜索组件列表
若要查看活动搜索拓扑中的搜索组件及其属性的列表,您必须使用 Microsoft PowerShell。其中一个搜索组件属性是搜索组件 ID。您将只需要搜索组件 ID 就能删除搜索组件。
查看所有搜索组件的列表
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 2016 命令行管理程序 并且已在其中创建了可重用的 SharePoint 命令行管理程序 对象引用,则改用打开的 Shell。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active Get-SPEnterpriseSearchComponent -SearchTopology $active
该命令将返回活动搜索拓扑中的搜索组件及其属性的列表。
克隆活动搜索拓扑
若要在搜索安装中对具有搜索索引项的搜索拓扑做出任何更改,首先必须创建一个新的拓扑对象。可通过添加或删除搜索组件修改此新的拓扑对象(活动拓扑的克隆)。对克隆拓扑对象进行更改之后,将其设置为活动拓扑。
克隆活动拓扑
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
如果您继续使用相同的 SharePoint 命令行管理程序 添加或删除搜索组件并激活搜索拓扑,则该命令将创建一个可使用 $clone 进行引用的克隆搜索拓扑。
(可选)如果您必须删除搜索拓扑中的搜索组件,则必须检索搜索组件 ID。在 Microsoft PowerShell 命令提示符处,键入以下命令:
Get-SPEnterpriseSearchComponent -SearchTopology $clone
此命令将返回克隆搜索拓扑中的搜索组件及其属性(包括搜索组件 ID)的列表。
添加搜索组件
无法直接更改活动搜索拓扑。此过程假定您已按照克隆活动搜索拓扑中所述创建了克隆拓扑对象。您可对每个搜索组件使用下列 Microsoft PowerShell cmdlet:
New-SPEnterpriseSearchAdminComponent
New-SPEnterpriseSearchAnalyticsProcessingComponent
New-SPEnterpriseSearchContentProcessingComponent
New-SPEnterpriseSearchCrawlComponent
New-SPEnterpriseSearchQueryProcessingComponent
备注
添加索引组件的过程各不相同。有关详细信息,请参阅在 SharePoint Server 中管理索引组件。
添加搜索组件
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
New-SPEnterpriseSearch<SearchComponent> -SearchTopology $clone -SearchServiceInstance $<host n>
其中:
<SearchComponent> 是要添加的搜索组件类型的名称。
$clone 是要更改的克隆拓扑。请参阅克隆活动搜索拓扑。
$<host n> 是对要向其添加搜索组件的服务器上运行的搜索服务实例的 PowerShell 对象引用。请参阅启动服务器上的搜索服务实例。
例如,以下命令将向搜索服务实例引用 $hostA 标识的服务器上的克隆拓扑添加内容处理组件。
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $hostA
确认已将新的搜索组件添加到克隆拓扑。在 Microsoft PowerShell 命令提示符处,键入以下命令:
Get-SPEnterpriseSearchComponent -SearchTopology $clone
删除搜索组件
若要删除搜索组件,您必须使用 Windows PowerShell。无法直接更改活动搜索拓扑。此过程假定您已按照克隆活动搜索拓扑中所述创建了克隆拓扑对象。
备注
删除索引组件的过程各不相同。有关详细信息,请参阅在 SharePoint Server 中管理索引组件。
删除搜索组件
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。
确保当前活动拓扑运行正常并且将要删除的搜索组件的状态为“活动”。在“管理中心”的“搜索管理”页中查看搜索拓扑的状态或运行 Windows PowerShell cmdlet
Get-SPEnterpriseSearchStatus
。在 Microsoft PowerShell 命令提示符处,键入以下命令:
Remove-SPEnterpriseSearchComponent -Identity <Search component id> -SearchTopology $clone
其中:
<Search component id> 是要删除的搜索组件的 ID。请使用克隆拓扑中的搜索组件 ID。若要检索搜索组件 ID,请参阅克隆活动搜索拓扑中的第 4 步。
$clone 是要更改的克隆拓扑。请参阅克隆活动搜索拓扑。
当出现系统提示时,请确认是否要删除搜索组件。
移动搜索组件
如果要将搜索组件从一台服务器移到另一台服务器,则建议您先向搜索拓扑添加新的搜索组件,然后再删除旧的搜索组件。
移动搜索组件
克隆活动搜索拓扑。请参阅克隆活动搜索拓扑。
将新的搜索组件添加到您最终希望其托管此搜索组件的服务器。请参阅添加搜索组件。
激活搜索拓扑。此拓扑将具有一个不必要的搜索组件。请参阅激活搜索拓扑。
确保当前活动拓扑运行正常。在“管理中心”的“搜索管理”页中查看搜索拓扑的状态或运行 Windows PowerShell cmdlet
Get-SPEnterpriseSearchStatus
。再次克隆搜索拓扑。请参阅克隆活动搜索拓扑。
删除不必要的搜索组件。请参阅删除搜索组件。
再次激活搜索拓扑。请参阅激活搜索拓扑。
激活搜索拓扑
若要激活搜索拓扑,您必须使用 Windows PowerShell。
激活搜索拓扑
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
Set-SPEnterpriseSearchTopology -Identity $clone
其中:
- $clone 是要更改的克隆拓扑。请参阅克隆活动搜索拓扑。
确认您的新拓扑处于活动状态。在 Windows PowerShell 命令提示符处,键入以下命令:
Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
该命令将返回活动拓扑和非活动拓扑的概览,例如:
TopologyId : fce8507d-61c6-4498-8038-4fd2d0a62c6e CreationDate : 1/30/2016 2:52:00 AM State : Inactive ComponentCount : 6 TopologyId : b63d48b2-df5c-41be-a7f4-9abaee483611 CreationDate : 1/30/2016 4:30:00 AM State : Active ComponentCount : 7
您将会看到,活动拓扑的组件计数反映了您已做出的更改。