SharePoint 2013 Non-Rectangular Search Topology

The SharePoint 2013 search topology is the next evolution of the Fast search engine from ESP and Fast Search for SharePoint. In previous releases you were forced to equal number of "rows" and "columns" in your search deployment. This is no longer a constraint in SharePoint 2013. This can be useful in many operational scenarios where you want to take search components off a server for maintenance. You can also imagine scenarios where you store archive content in the same farm with frequently updated/searched content. There is currently no option to configure your own document routing, which is the piece missing to support the hybrid content scenario.

 

There are some caveats to activating non-rectangular topologies. You will run into an error if you try add a new index partition (column in ESP / FS4SP terminology) that does not have the same replicas as the existing topology or if the current topology is not already rectangular. I have not seen this requirement documented anywhere.

 

Here's an example on my farm.

 

Initial Search Topology 
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1 
 PDSP002      x  x      x
 PDSP003  x        x  x  
 PDSP004  x  x      x    

 If I now add a new replica on partition 1. .

Search Topology after adding one replica
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1 
 PDSP002      x  x     x
 PDSP003  x        x  x  
 PDSP004  x  x      x    
 PDSP007              x

 

I can make my topology even more unbalanced by creating one partition with a single replica and another partition with three replicas.

Search Topology after adding two replicas
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1 
 PDSP001             x
 PDSP002      x  x     x
 PDSP003  x        x  x  
 PDSP004  x  x      x    
 PDSP007              x

 

But if I try to add an additional column in either of these states, I will get an error about repartioning the index: 

PS C:\Users\SPFarm> Set-SPEnterpriseSearchTopology -Identity $newTopology
Set-SPEnterpriseSearchTopology : Topology activation failed. It is not possible to repartition a non-rectangular topology
At line:1 char:1
+ Set-SPEnterpriseSearchTopology -Identity $newTopology
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Offic...tSearchTopology:SetSearchTopology) [Set-SPEnterpriseSearchTopology], SearchTopologyActivationException
    + FullyQualifiedErrorId : Microsoft.Office.Server.Search.Cmdlet.SetSearchTopology

 

You can actually get there from here, it just takes a few steps. First revert back to a rectangular topology.

Back to Initial Search Topology 
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1 
 PDSP002      x  x     x
 PDSP003  x        x x  
 PDSP004  x  x      x    

And then add the new partition

Rectangular Search Topology with New Partition
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1  Index Partition 2
 PDSP002      x  x     x  
 PDSP003  x        x x    
 PDSP004  x  x      x      
 PDSP005               x

Finally add back your unbalanced replicas.

 

Goal Search Topology - New partition and unbalanced replicas
Server Name Admin   Crawler   Content Processing Analytics Processing   Query Processing   Index Partition 0  Index Partition 1  Index Partition 2
 PDSP001             x  
 PDSP002      x  x     x  
 PDSP003  x        x x    
 PDSP004  x  x      x      
 PDSP005              
 PDSP007              x