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

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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

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

开始之前

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

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

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

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

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

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

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

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

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

  • 创建新的空搜索拓扑。

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

  • 激活新的搜索拓扑。

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

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

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

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

目标搜索拓扑

虚拟机 物理应用程序服务器 X) 上的 (myserver1.example.com 物理应用程序服务器 X) 上的虚拟机 B (myserver2.example.com 物理应用程序服务器 Y) 上的虚拟机 C (myserver3.example.com 物理应用程序服务器 Y) 上的虚拟机 D (myserver4.example.com
管理组件 1

爬网组件 1

内容处理组件 1

分析处理组件 1
查询处理组件 1

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

爬网组件 2

内容处理组件 2

分析处理组件 2
查询处理组件 2

索引组件 2(属于索引分区 0)
  1. 确保承载管理中心的服务器上没有启动任何爬网且搜索索引为空。

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

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

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

    • Verify that the search index is empty. On the Search Administration page, under System Status, verify that Searchable items displays "0".

      警告

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

  • Verify that no crawls have been started. On the Search Administration page, under Crawling, click Content Sources. On the Manage Content Sources page, verify that the Status column for any existing content source displays Idle.
  1. 在场中的一个服务器上启动 SharePoint 命令行管理程序。

  2. 指定要向其中添加搜索组件的新服务器,在这些服务器上启动搜索服务实例 (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
    
    
  3. 稍等片刻,直到所有搜索服务实例开始运行。 在 Windows PowerShell 命令提示符处,键入以下命令,直到这些命令为每个搜索服务实例返回状态"联机":

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

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa
    
    
  5. 将所有搜索组件添加到新的搜索拓扑。 以下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 
    
    
  6. 激活新的搜索拓扑。 在 Windows PowerShell 命令提示符处,键入以下命令:

    Set-SPEnterpriseSearchTopology -Identity $newTopology
    
  7. 确认新搜索拓扑处于活动状态。 在 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 个组件。

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

    Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
    

    This command should return a list of all the active search components. The state of the active search components should be displayed as Active.