For performance reasons, you may wish to move the Search Service Application in SharePoint 2013 to a different farm server. After adding the server to the farm, and provisioning the Search Service, in order to move the service, you will need to do so through Powershell, as that is the only way to get the components moved over.
Rather than breaking up the SSA components onto multiple servers, to reduce lag, etc. between servers, its suggested to keep the components together on the same server.
So for instance, you may have Central Admin running on Server A, along with the User Sync and Search. To reduce the load on Server A, you may want to move the entire search portion over to Server B.
To do so, run the following commands:
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone –SearchTopology $active $newSrv = Get-SPEnterpriseSearchServiceInstance -Identity <<Server B Name>> New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $clone -SearchServiceInstance $newSrv New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $clone -SearchServiceInstance $newSrv New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $newSrv New-SPEnterpriseSearchCrawlComponent -SearchTopology $clone -SearchServiceInstance $newSrv New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchServiceInstance $newSrv New-SPEnterpriseSearchIndexComponent –SearchTopology $clone -SearchServiceInstance $newSrv -IndexPartition 0 Start-SPEnterpriseSearchServiceInstance -Identity $newSrv Set-SPEnterpriseSearchTopology -Identity $clone
Next, you will need to re-clone it again to remove the old components off the old server
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone –SearchTopology $active
Run the following, this will give you a list of all the component IDs you will need to remove them from Server A
Get-SPEnterpriseSearchComponent -SearchTopology $clone
Replace the IDs in the following commands:
Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Remove-SPEnterpriseSearchComponent -Identity <<Server A Component ID>> -SearchTopology $clone -confirm:$false Set-SPEnterpriseSearchTopology -Identity $clone
Run a refresh in central admin, and you should see the following: