Executing a distributed search using PHP
To do a search on multiple shards, first we need to get the distributed search component from Solr. And then add shards to search as given in the following code:
$dSearch = $query->getDistributedSearch(); $dSearch->addShard('shard1','localhost:8080/solr'); $dSearch->addShard('shard2','localhost:8983/solr'); $resultSet = $client->select($query);
After executing the search we get a result set that has results from both the shards and can use it as we have used result sets earlier.
When we execute the search, we can see that Solr logs on both servers receive entries pertaining to this search. The parameters that are passed are shard.url
(which contains the URL for Solr) and isShard=true
.
Instead of adding shard one after another, we can add multiple shards in a single go using the addShards()
function as given in the following:
$dSearch->addShards(array( 'shard1' => 'localhost:8080/solr', 'shard2' => 'localhost:8983...