コード例 #1
0
ファイル: RequestTest.php プロジェクト: Bine0511/RDF-Demo
 public function testGetUriWithHandlerAndParams()
 {
     $params = array('param1' => 1, 'param2' => array(2, 3));
     $this->_request->setHandler('myHandler');
     $this->_request->addParams($params);
     $this->assertEquals('myHandler?param1=1&param2=2&param2=3', $this->_request->getUri());
 }
コード例 #2
0
ファイル: Terms.php プロジェクト: priyankajsr19/shalu
 /**
  * Build request for a Terms query
  *
  * @param Solarium_Query_Terms $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = new Solarium_Client_Request();
     $request->setHandler($query->getHandler());
     $request->addParam('terms', true);
     $request->addParam('wt', 'json');
     $request->addParam('terms.lower', $query->getLowerbound());
     $request->addParam('terms.lower.incl', $query->getLowerboundInclude());
     $request->addParam('terms.mincount', $query->getMinCount());
     $request->addParam('terms.maxcount', $query->getMaxCount());
     $request->addParam('terms.prefix', $query->getPrefix());
     $request->addParam('terms.regex', $query->getRegex());
     $request->addParam('terms.limit', $query->getLimit());
     $request->addParam('terms.upper', $query->getUpperbound());
     $request->addParam('terms.upper.incl', $query->getUpperboundInclude());
     $request->addParam('terms.raw', $query->getRaw());
     $request->addParam('terms.sort', $query->getSort());
     $fields = explode(',', $query->getFields());
     foreach ($fields as $field) {
         $request->addParam('terms.fl', trim($field));
     }
     if ($query->getRegexFlags() !== null) {
         $flags = explode(',', $query->getRegexFlags());
         foreach ($flags as $flag) {
             $request->addParam('terms.regex.flag', trim($flag));
         }
     }
     return $request;
 }
コード例 #3
0
 /**
  * Build request for a select query
  *
  * @param Solarium_Query $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = new Solarium_Client_Request();
     $request->setHandler($query->getHandler());
     $request->addParams($query->getParams());
     $request->addParam('wt', 'json');
     return $request;
 }
コード例 #4
0
ファイル: Ping.php プロジェクト: priyankajsr19/shalu
 /**
  * Build request for a ping query
  *
  * @param Solarium_Query_Ping $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = new Solarium_Client_Request();
     $request->setHandler($query->getHandler());
     $request->setMethod(Solarium_Client_Request::METHOD_GET);
     $request->addParam('wt', 'json');
     return $request;
 }
コード例 #5
0
 /**
  * Build request for an analysis query
  *
  * @param Solarium_Query_Analysis $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = new Solarium_Client_Request();
     $request->setHandler($query->getHandler());
     $request->addParam('wt', 'json');
     $request->addParam('analysis.query', $query->getQuery());
     $request->addParam('analysis.showmatch', $query->getShowMatch());
     return $request;
 }
コード例 #6
0
 public function testExecute()
 {
     $method = Solarium_Client_Request::METHOD_GET;
     $rawData = 'xyz';
     $responseData = 'abc';
     $handler = 'myhandler';
     $request = new Solarium_Client_Request();
     $request->setMethod($method);
     $request->setHandler($handler);
     $request->setRawData($rawData);
     $response = new Zend_Http_Response(200, array('status' => 'HTTP 1.1 200 OK'), $responseData);
     $mock = $this->getMock('Zend_Http_Client');
     $mock->expects($this->once())->method('setMethod')->with($this->equalTo($method));
     $mock->expects($this->once())->method('setUri')->with($this->equalTo('http://127.0.0.1:8983/solr/myhandler?'));
     $mock->expects($this->once())->method('setRawData')->with($this->equalTo($rawData));
     $mock->expects($this->once())->method('request')->will($this->returnValue($response));
     $this->_adapter->setZendHttp($mock);
     $adapterResponse = $this->_adapter->execute($request);
     $this->assertEquals($responseData, $adapterResponse->getBody());
 }
コード例 #7
0
ファイル: Select.php プロジェクト: priyankajsr19/shalu
 /**
  * Build request for a select query
  *
  * @param Solarium_Query_Select $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = new Solarium_Client_Request();
     $request->setHandler($query->getHandler());
     // add basic params to request
     $request->addParam('q', $query->getQuery());
     $request->addParam('start', $query->getStart());
     $request->addParam('rows', $query->getRows());
     $request->addParam('fl', implode(',', $query->getFields()));
     $request->addParam('wt', 'json');
     $request->addParam('q.op', $query->getQueryDefaultOperator());
     $request->addParam('df', $query->getQueryDefaultField());
     // add sort fields to request
     $sort = array();
     foreach ($query->getSorts() as $field => $order) {
         $sort[] = $field . ' ' . $order;
     }
     if (count($sort) !== 0) {
         $request->addParam('sort', implode(',', $sort));
     }
     // add filterqueries to request
     $filterQueries = $query->getFilterQueries();
     if (count($filterQueries) !== 0) {
         foreach ($filterQueries as $filterQuery) {
             $fq = $this->renderLocalParams($filterQuery->getQuery(), array('tag' => $filterQuery->getTags()));
             $request->addParam('fq', $fq);
         }
     }
     // add components to request
     $types = $query->getComponentTypes();
     foreach ($query->getComponents() as $component) {
         $componentBuilderClass = $types[$component->getType()]['requestbuilder'];
         if (!empty($componentBuilderClass)) {
             $componentBuilder = new $componentBuilderClass();
             $request = $componentBuilder->build($component, $request);
         }
     }
     return $request;
 }