The following powershell will setup Search Application Topology via powershell...
This is an example of a 4 server farm (2 wfe, 2 app):
Specify
the new servers you want to add search components to, start a search service
instance (ssi) on these servers and create references to the search service
instances
$hostA = Get-SPEnterpriseSearchServiceInstance -Identity
"<server>"
$hostB = Get-SPEnterpriseSearchServiceInstance -Identity
"<server>"
$hostC = Get-SPEnterpriseSearchServiceInstance -Identity
"<server>"
$hostD = Get-SPEnterpriseSearchServiceInstance -Identity
"<server>"
Start-SPEnterpriseSearchServiceInstance -Identity $hostA
Start-SPEnterpriseSearchServiceInstance -Identity $hostB
Start-SPEnterpriseSearchServiceInstance -Identity $hostC
Start-SPEnterpriseSearchServiceInstance -Identity $hostD
Wait
until all the search service instances are running. At the Windows PowerShell
command prompt, type the following commands until the commands return the state
"Online" for each of the search service instances
Get-SPEnterpriseSearchServiceInstance -Identity $hostA
Get-SPEnterpriseSearchServiceInstance -Identity $hostB
Get-SPEnterpriseSearchServiceInstance -Identity $hostC
Get-SPEnterpriseSearchServiceInstance -Identity $hostD
Create
a new search topology and a reference to the new search topology. At the
Windows PowerShell command prompt, type the following command(s):
$ssa = Get-SPEnterpriseSearchServiceApplication
$newTopology = New-SPEnterpriseSearchTopology -SearchApplication
$ssa
Add
all the search components to the new search topology. The following Windows
PowerShell commands will create the search components of the new topology and
assign them to the new servers. In this small enterprise search topology there
is one index partition, index partition 0, to cater for a maximum of ten
million items. This is indicated with the parameter -IndexPartition in the
command New-SPEnterpriseSearchIndexComponent
New-SPEnterpriseSearchAdminComponent -SearchTopology
$newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchAdminComponent -SearchTopology
$newTopology -SearchServiceInstance $hostB
New-SPEnterpriseSearchCrawlComponent -SearchTopology
$newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchCrawlComponent -SearchTopology
$newTopology -SearchServiceInstance $hostB
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology
$newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology
$newTopology -SearchServiceInstance $hostB
New-SPEnterpriseSearchAnalyticsProcessingComponent
-SearchTopology $newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchAnalyticsProcessingComponent
-SearchTopology $newTopology -SearchServiceInstance $hostB
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology
$newTopology -SearchServiceInstance $hostC
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology
$newTopology -SearchServiceInstance $hostD
New-SPEnterpriseSearchIndexComponent -SearchTopology
$newTopology -SearchServiceInstance $hostA -IndexPartition 0
New-SPEnterpriseSearchIndexComponent -SearchTopology
$newTopology -SearchServiceInstance $hostB -IndexPartition 0
Activate
the new search topology
Set-SPEnterpriseSearchTopology -Identity $newTopology
Verify
that the new search topology is active
Get-SPEnterpriseSearchTopology -SearchApplication $ssa
Verify
that all components of the new search topology are running correctly
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text