/** * Add request settings for DistributedSearch * * @param Solarium_Query_Select_Component_DistributedSearch $component * @param Solarium_Client_Request $request * @return Solarium_Client_Request */ public function build($component, $request) { // add shard fields to request $shards = array_values($component->getShards()); if (count($shards)) { $request->addParam('shards', implode(',', $shards)); } $request->addParam('shards.qt', $component->getShardRequestHandler()); return $request; }
public function testBuildComponent() { $builder = new Solarium_Client_RequestBuilder_Select_Component_DistributedSearch(); $request = new Solarium_Client_Request(); $component = new Solarium_Query_Select_Component_DistributedSearch(); $component->addShard('shard1', 'localhost:8983/solr/shard1'); $component->addShards(array('shard2' => 'localhost:8983/solr/shard2', 'shard3' => 'localhost:8983/solr/shard3')); $component->setShardRequestHandler('dummy'); $request = $builder->buildComponent($component, $request); $this->assertEquals(array('shards.qt' => 'dummy', 'shards' => 'localhost:8983/solr/shard1,localhost:8983/solr/shard2,localhost:8983/solr/shard3'), $request->getParams()); }
public function testSetShardRequestHandler() { $this->_distributedSearch->setShardRequestHandler('dummy'); $this->assertEquals('dummy', $this->_distributedSearch->getShardRequestHandler()); }