在 SharePoint Server 中管理搜索组件

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint 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 服务。

启动搜索服务实例

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 在场中的一个服务器上启动 SharePoint 命令行管理程序。

  3. 在 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>) 来指定目标服务器。

  4. 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。

查看活动搜索拓扑

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。

  3. 在 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 即可删除搜索组件。

查看所有搜索组件的列表

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已有一个打开的 SharePoint 命令行管理程序,在其中创建了可重用的 SharePoint 命令行管理程序对象引用,请改用打开的 shell。

  3. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    Get-SPEnterpriseSearchComponent -SearchTopology $active
    

    该命令将返回活动搜索拓扑中的搜索组件及其属性的列表。

克隆活动搜索拓扑

若要在搜索安装中对具有搜索索引项的搜索拓扑做出任何更改,首先必须创建一个新的拓扑对象。 可通过添加或删除搜索组件修改此新的拓扑对象(活动拓扑的克隆)。 对克隆拓扑对象进行更改之后,将其设置为活动拓扑。

克隆活动拓扑

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。

  3. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
    

    如果继续使用同一 SharePoint 命令行管理程序添加或删除搜索组件并激活搜索拓扑,该命令将创建一个克隆搜索拓扑,该拓扑可以使用 $clone 引用。

  4. (可选)如果您必须删除搜索拓扑中的搜索组件,则必须检索搜索组件 ID。在 Microsoft PowerShell 命令提示符处,键入以下命令:

    Get-SPEnterpriseSearchComponent -SearchTopology $clone
    

    此命令将返回克隆搜索拓扑中的搜索组件及其属性(包括搜索组件 ID)的列表。

添加搜索组件

无法直接更改活动搜索拓扑。 此过程假定您已按照克隆活动搜索拓扑中所述创建了克隆拓扑对象。 您可对每个搜索组件使用下列 Microsoft PowerShell cmdlet:

  • New-SPEnterpriseSearchAdminComponent

  • New-SPEnterpriseSearchAnalyticsProcessingComponent

  • New-SPEnterpriseSearchContentProcessingComponent

  • New-SPEnterpriseSearchCrawlComponent

  • New-SPEnterpriseSearchQueryProcessingComponent

注意

[!注意] 添加索引组件的过程各不相同。 有关详细信息,请参阅在 SharePoint Server 中管理索引组件

添加搜索组件

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。

  3. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    New-SPEnterpriseSearch<SearchComponent> -SearchTopology $clone -SearchServiceInstance $<host n >
    

    其中:

    • <SearchComponent> 是要添加的搜索组件类型的名称。

    • $clone 是要更改的克隆拓扑。 请参阅 克隆活动搜索拓扑

    • $<host n> 是对要向其添加搜索组件的服务器上正在运行的搜索服务实例的 PowerShell 对象引用。 请参阅 在服务器上启动搜索服务实例

    例如,以下命令将向搜索服务实例引用 $hostA 标识的服务器上的克隆拓扑添加内容处理组件。

    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $hostA
    
  4. 确认已将新的搜索组件添加到克隆拓扑。 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    Get-SPEnterpriseSearchComponent -SearchTopology $clone
    

删除搜索组件

若要删除搜索组件,您必须使用 Windows PowerShell。 无法直接更改活动搜索拓扑。 此过程假定您已按照克隆活动搜索拓扑中所述创建了克隆拓扑对象。

注意

[!注意] 删除索引组件的过程各不相同。 有关详细信息,请参阅在 SharePoint Server 中管理索引组件

删除搜索组件

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。

  3. 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

  4. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    Remove-SPEnterpriseSearchComponent -Identity <Search component id> -SearchTopology $clone
    

    其中:

    • <Search component id> 是要删除的搜索组件的 ID。 请使用克隆拓扑中的搜索组件 ID。 若要检索搜索组件 ID,请参阅 克隆活动搜索拓扑中的第 4 步。

    • $clone 是要更改的克隆拓扑。 请参阅 克隆活动搜索拓扑

  5. 当出现系统提示时,请确认是否要删除搜索组件。

移动搜索组件

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

移动搜索组件

  1. 克隆活动搜索拓扑。 请参阅克隆活动搜索拓扑

  2. 将新的搜索组件添加到您最终希望其托管此搜索组件的服务器。 请参阅添加搜索组件

  3. 激活搜索拓扑。 此拓扑将具有一个不必要的搜索组件。 请参阅激活搜索拓扑

  4. 确保当前活动拓扑运行正常。 在管理中心的“搜索管理”页中查看搜索拓扑的状态,或运行 Windows PowerShell cmdlet Get-SPEnterpriseSearchStatus

  5. 再次克隆搜索拓扑。 请参阅克隆活动搜索拓扑

  6. 删除不必要的搜索组件。 请参阅删除搜索组件

  7. 再次激活搜索拓扑。 请参阅激活搜索拓扑

激活搜索拓扑

若要激活搜索拓扑,您必须使用 Windows PowerShell。

激活搜索拓扑

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动 SharePoint 命令行管理程序。 如果已打开一个 SharePoint 命令行管理程序 并且已在其中创建了可重用的 Microsoft PowerShell 对象引用,则改用打开的 Shell。

  3. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    Set-SPEnterpriseSearchTopology -Identity $clone
    

    其中:

  4. 确认您的新拓扑处于活动状态。 在 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
    

    您将会看到,活动拓扑的组件计数反映了您已做出的更改。