在 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 服务。

启动搜索服务实例

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

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

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

  4. 请等待所有搜索服务实例运行。对于每个搜索服务实例,请在 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。

查看活动搜索拓扑

  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 2016 命令行管理程序 并且已在其中创建了可重用的 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. 确保当前活动拓扑运行正常并且将要删除的搜索组件的状态为“活动”。在“管理中心”的“搜索管理”页中查看搜索拓扑的状态或运行 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
    

    其中:

    • $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
    

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