Esempio n. 1
0
 /**
  * Build request for an update query
  *
  * @param Solarium_Query_Update $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     $request->setMethod(Solarium_Client_Request::METHOD_POST);
     $request->setRawData($this->getRawData($query));
     return $request;
 }
Esempio n. 2
0
 /**
  * Build request for an analysis query
  *
  * @param Solarium_Query_Analysis $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     $request->addParam('analysis.query', $query->getQuery());
     $request->addParam('analysis.showmatch', $query->getShowMatch());
     return $request;
 }
Esempio n. 3
0
 /**
  * Build request for a Terms query
  *
  * @param Solarium_Query_Terms $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     $request->addParam('terms', true);
     $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;
 }
Esempio n. 4
0
 /**
  * Build request for a Suggester query
  *
  * @param Solarium_Query_Suggester $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     $request->addParam('spellcheck', 'true');
     $request->addParam('q', $query->getQuery());
     $request->addParam('spellcheck.dictionary', $query->getDictionary());
     $request->addParam('spellcheck.count', $query->getCount());
     $request->addParam('spellcheck.onlyMorePopular', $query->getOnlyMorePopular());
     $request->addParam('spellcheck.collate', $query->getCollate());
     return $request;
 }
Esempio n. 5
0
 /**
  * Build request for a select query
  *
  * @param Solarium_Query_Select $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     // 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('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->buildComponent($component, $request);
         }
     }
     return $request;
 }
Esempio n. 6
0
 /**
  * Build request for a ping query
  *
  * @param Solarium_Query_Ping $query
  * @return Solarium_Client_Request
  */
 public function build($query)
 {
     $request = parent::build($query);
     $request->setMethod(Solarium_Client_Request::METHOD_GET);
     return $request;
 }