在 SharePoint Server 中管理搜索组件
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
本文中的过程和示例假定已安装 SharePoint Server SharePoint Server 和搜索服务应用程序,并且 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 命令行管理程序,以便在命令之间共享Microsoft PowerShell 对象引用。
在服务器上启动搜索服务实例
向新的服务器添加搜索组件之前,必须先启动服务器上的搜索服务实例。 搜索服务实例将启动搜索服务(OSearch16 和 SPSearchHostController)需要使用的所有 Windows 服务。
启动搜索服务实例
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
在场中的一个服务器上启动 SharePoint 命令行管理程序。
在 Microsoft PowerShell 命令提示符处,键入以下命令:
$<host n > = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>" Start-SPEnterpriseSearchServiceInstance -Identity $<host n >
其中:
$ <host n> 指定搜索服务实例的 PowerShell 对象引用。
<服务器名称> 指定想要对其添加索引组件的服务器。 输入必须是有效的 GUID,格式
12345678-90ab-cdef-1234-567890bcdefgh
为 ;服务器的有效名称 (例如 myserver1 ) ;或有效 SearchServiceInstance 对象的实例。
例如:
$hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1" $hostB = Get-SPEnterpriseSearchServiceInstance -Identity "myserver2" Start-SPEnterpriseSearchServiceInstance -Identity $hostA Start-SPEnterpriseSearchServiceInstance -Identity $hostB
添加搜索组件时,可以使用 引用 ($<host n>) 来指定目标服务器。
Wait until all the search service instances are running. For each of the search service instances, at the Microsoft PowerShell command prompt, type the following command until the command returns the status Online:
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
检索搜索组件列表
若要查看活动搜索拓扑中的搜索组件及其属性的列表,必须使用 powerShell Microsoft。 搜索组件属性之一是搜索组件 ID。只需搜索组件 ID 即可删除搜索组件。
查看所有搜索组件的列表
确认执行此过程的用户帐户是 服务器场管理员 组的成员。
启动 SharePoint 命令行管理程序。 如果已有一个打开的 SharePoint 命令行管理程序,在其中创建了可重用的 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。
Make sure that the current active topology is healthy and that the search component that you are about to remove is Active. 在管理中心的“搜索管理”页中查看搜索拓扑的状态,或运行 Windows PowerShell cmdlet
Get-SPEnterpriseSearchStatus
。在 Microsoft PowerShell 命令提示符处,键入以下命令:
Remove-SPEnterpriseSearchComponent -Identity <Search component id> -SearchTopology $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
您将会看到,活动拓扑的组件计数反映了您已做出的更改。