在 SharePoint Server 中更改默认搜索拓扑

 

**上一次修改主题:**2018-03-07

**摘要:**了解如何使用 Windows PowerShell 从包含空 SharePoint Server 2016 和 SharePoint Server 2013 搜索索引的默认搜索拓扑更改为新的搜索拓扑。

本文介绍了如何在从默认搜索拓扑入手,创建和激活新搜索拓扑中的搜索组件。参考本文中的过程和示例的前提是,SharePoint Server 和 Search Service 应用程序是新安装的,并且 SharePoint Server 搜索索引是空的。如果搜索拓扑属于云混合搜索解决方案,你还可以参考这些过程和示例在 SharePoint Server 中管理搜索拓扑。

如果 SharePoint Server 搜索索引不是空的,请按在 SharePoint Server 中管理搜索组件在 SharePoint Server 中管理索引组件中的过程操作。

本文内容:

  • 开始之前

  • 概述:更改搜索索引中没有内容的搜索拓扑

  • 示例:从默认搜索拓扑更改为小型企业级搜索拓扑

开始之前

开始操作之前,请查看以下先决条件。

  • 在单台服务器上安装了 SharePoint Server,并且创建了具有默认搜索拓扑的 Search Service 应用程序。在默认搜索拓扑中,所有搜索组件都位于承载管理中心的服务器上。

  • 您是 Search Service 应用程序的管理员。

  • 你已规划目标搜索拓扑。在 SharePoint Server 2016 中规划企业搜索体系结构提供了在企业中进行搜索的分步指导,包括硬件要求。有关 Internet 网站的示例服务器场体系结构和搜索拓扑,请参阅技术图表 SharePoint Server 2016 的 Internet 网站搜索体系结构。建议根据搜索索引中的预期项目数来规划目标搜索拓扑,以便在企业中进行搜索。

  • 要在其上托管搜索组件的所有服务器上均安装了 SharePoint Server。已将这些服务器添加到场中,并且你是所有这些服务器的管理员。你可以新建应用程序服务器,也可以在现有部署中定义应用程序服务器。

概述:更改搜索索引中没有内容的搜索拓扑

下面的列表概述了将包含空 SharePoint Server 搜索索引的默认搜索拓扑更改为新搜索拓扑所涉及的任务。

  • 确保没有启动任何爬网并且 SharePoint Server 搜索索引为空。

  • 在您希望在其中承载搜索组件的所有服务器上启动 Search Service 实例。

  • 创建新的空搜索拓扑。

  • 向新搜索拓扑中添加搜索组件。

  • 激活新的搜索拓扑。

  • 确认搜索拓扑处于活动状态。

示例:从默认搜索拓扑更改为小型企业级搜索拓扑

以下过程将在多台服务器上创建和激活小型企业级搜索拓扑,如目标搜索拓扑表中所规划。小型企业级搜索拓扑使用物理应用程序服务器上的虚拟机。本示例中的所有搜索组件均设置为具有容错能力,这意味着可跨多个物理机在不同的故障域中部署所有搜索组件和索引分区。

如果要扩展到更大型企业级搜索拓扑或 Internet 站点搜索拓扑,则可以使用不同的变量执行相同的过程。

目标搜索拓扑

虚拟机 A(在物理应用程序服务器 X 上) myserver1.example.com 虚拟机 B(在物理应用程序服务器 X 上) myserver2.example.com 虚拟机 C(在物理应用程序服务器 Y 上) myserver3.example.com 虚拟机 D(在物理应用程序服务器 Y 上) myserver4.example.com

管理组件 1

爬网组件 1

内容处理组件 1

分析处理组件 1

查询处理组件 1

索引组件 1(属于索引分区 0)

管理组件 2

爬网组件 2

内容处理组件 2

分析处理组件 2

查询处理组件 2

索引组件 2(属于索引分区 0)

  1. 确保承载管理中心的服务器上没有启动任何爬网且搜索索引为空。

    • 确认执行此过程的用户帐户是 Search Service 应用程序的管理员。

    • 在管理中心的“应用程序管理”部分,单击“管理服务应用程序”。

    • 在“管理服务应用程序”页上的服务应用程序列表中,单击“Search Service 应用程序”。

    • 确认搜索索引为空。在“搜索管理”页上的“系统状态”下,确认“可搜索项”中显示“0”。

      警告

      如果 SharePoint Server 搜索索引中包含项目,请不要继续此过程。

    • 确保未启动任何爬网。在“搜索管理”页上的“爬网”下,单击“内容源”。在“管理内容源”页上,确保任何现有内容源的“状态”列中显示“空闲”。

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

  3. 指定要向其中添加搜索组件的新服务器,在这些服务器上启动搜索服务实例 (ssi) 并创建对这些搜索服务实例的引用。如目标搜索拓扑表中所示,我们对这些服务器使用示例主机名“myserver<n>”。在 Windows PowerShell 命令提示符处,键入以下命令:

    $hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1"
    $hostB = Get-SPEnterpriseSearchServiceInstance -Identity "myserver2"
    $hostC = Get-SPEnterpriseSearchServiceInstance -Identity "myserver3"
    $hostD = Get-SPEnterpriseSearchServiceInstance -Identity "myserver4"
    Start-SPEnterpriseSearchServiceInstance -Identity $hostA
    Start-SPEnterpriseSearchServiceInstance -Identity $hostB
    Start-SPEnterpriseSearchServiceInstance -Identity $hostC
    Start-SPEnterpriseSearchServiceInstance -Identity $hostD
    
  4. 稍等片刻,直到所有搜索服务实例开始运行。在 Windows PowerShell 命令提示符处,键入以下命令,直到这些命令为每个搜索服务实例返回状态“联机”:

    Get-SPEnterpriseSearchServiceInstance -Identity $hostA
    Get-SPEnterpriseSearchServiceInstance -Identity $hostB
    Get-SPEnterpriseSearchServiceInstance -Identity $hostC
    Get-SPEnterpriseSearchServiceInstance -Identity $hostD
    
  5. 创建一个新搜索拓扑以及对该新搜索拓扑的引用。在 Windows PowerShell 命令提示符处,键入以下命令:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa
    
  6. 将所有搜索组件添加到新的搜索拓扑中。以下 Windows PowerShell 命令将创建新拓扑的搜索组件,并将这些组件分配到新服务器。在此小型企业级搜索拓扑中,有一个索引分区(索引分区 0)。它在命令 New-SPEnterpriseSearchIndexComponent 中表示为 -IndexPartition 参数。该索引分区在虚拟机 B 和虚拟机 D 上分别有一个索引副本。每个索引副本都将包含完全相同的搜索索引,且将托管在不同的物理服务器上以实现容错。在 Windows PowerShell 命令提示符处,键入以下命令:

    New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
    New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
    New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
    New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB
    New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -IndexPartition 0
    New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
    New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
    New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
    New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostD
    New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostD -IndexPartition 0 
    
  7. 激活新的搜索拓扑。在 Windows PowerShell 命令提示符处,键入以下命令:

    Set-SPEnterpriseSearchTopology -Identity $newTopology
    
  8. 确认新搜索拓扑处于活动状态。在 Windows PowerShell 命令提示符处,键入以下命令:

    Get-SPEnterpriseSearchTopology -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 : 12
    

    以前的拓扑(本例中的默认拓扑)列为非活动。本例中的新活动拓扑将具有 12 个组件。

  9. 确认新搜索拓扑的所有组件均正常运行。在 Windows PowerShell 命令提示符处,键入以下命令:

    Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
    

    此命令应返回所有活动搜索组件的列表。活动搜索组件的状态应显示为“活动”。