In Tridion search functionality is achieved using two Tridion Services, Tridion Content Manager Search Indexer and Tridion Content Manager Search Host and a third party Solr component. Whenever a searchable item is created/updated Tridion queues an instruction for indexing that item. The Tridion Content Manager Search Indexer picks it up and sends to Solr which is running inside the Tridion Content Manager Search Host to be indexed.
You can scale out the Tridion Content Manager Search Indexer and/or Tridion Content Manager Search Host. The instances where Tridion Content Manager Search Indexer it also needs Tridion Content Manager Service Host to retrieve content from Tridion. However, scaling out Tridion Content Manager Search Host is a bit more complex as Solr cannot have multiple masters, ie. where the items are indexed, so, one of them has to become the master and other ones slave. Only the master can index index item and later on the slaves' index gets synched with the master. So, all Tridion Content Manager Search Indexer should connect to the master Tridion Content Manager Service Host to index, configured in the config in <searchIndexer ... hostUrl="[Address]" hostUsername="[Username]" hostPassword="[Password]" />
. Then the question is why would you scale out Tridion Content Manager Service Host, it is done to scale out querying. You could query against any slave, ideally a load balancer is placed between scaled out Tridion Content Manager Service Host to balance the query to the instances, configured in the config in <search hostUrl="[Address]" hostUsername="[Username]" hostPassword="[Password]" />
.
Further details are here login required.