Пример #1
0
 /**
  * Build request for an analysis query
  *
  * @param  QueryInterface|Query   $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->addParam('analysis.query', $query->getQuery());
     $request->addParam('analysis.showmatch', $query->getShowMatch());
     return $request;
 }
Пример #2
0
 /**
  * Build request for a ping query
  *
  * @param  QueryInterface|Query   $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->setMethod(Request::METHOD_GET);
     $request->addParam('ids', implode(',', $query->getIds()));
     return $request;
 }
Пример #3
0
 /**
  * Build request for an update query
  *
  * @param  UpdateQuery $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->setMethod(Request::METHOD_POST);
     $request->setRawData($this->getRawData($query));
     return $request;
 }
Пример #4
0
 /**
  * Overrides \Solarium\Core\Query\RequestBuilder::build().
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->addParam('wt', 'json');
     $request->addParam('omitHeader', 'true');
     return $request;
 }
Пример #5
0
 /**
  * Build request for a select query
  *
  * @param  SelectQuery $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     // add basic params to request
     $request->addParam('q', $this->renderLocalParams($query->getQuery(), array('tag' => $query->getTags())));
     $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
     foreach ($query->getComponents() as $component) {
         $componentBuilder = $component->getRequestBuilder();
         if ($componentBuilder) {
             $request = $componentBuilder->buildComponent($component, $request);
         }
     }
     return $request;
 }
Пример #6
0
 /**
  * Overrides \Solarium\Core\Query\RequestBuilder::build().
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->addParam('numTerms', 0)->addParam('json.nl', 'map');
     //$request->setMethod(Request::METHOD_GET);
     return $request;
 }
Пример #7
0
 /**
  * Build request for a Suggester query
  *
  * @param  QueryInterface|Query   $query
  * @return Request
  */
 public function build(QueryInterface $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;
 }
Пример #8
0
 /**
  * Build the request
  *
  * @throws RuntimeException
  * @param  Query|QueryInterface $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->setMethod(Request::METHOD_POST);
     // add common options to request
     $request->addParam('commit', $query->getCommit());
     $request->addParam('commitWithin', $query->getCommitWithin());
     $request->addParam('uprefix', $query->getUprefix());
     $request->addParam('lowernames', $query->getLowernames());
     $request->addParam('defaultField', $query->getDefaultField());
     $request->addParam('extractOnly', $query->getExtractOnly());
     foreach ($query->getFieldMappings() as $fromField => $toField) {
         $request->addParam('fmap.' . $fromField, $toField);
     }
     // add document settings to request
     if (($doc = $query->getDocument()) != null) {
         if ($doc->getBoost() !== null) {
             throw new RuntimeException('Extract does not support document-level boosts, use field boosts instead.');
         }
         // literal.*
         foreach ($doc->getFields() as $name => $value) {
             $value = (array) $value;
             foreach ($value as $multival) {
                 $request->addParam('literal.' . $name, $multival);
             }
         }
         // boost.*
         foreach ($doc->getFieldBoosts() as $name => $value) {
             $request->addParam('boost.' . $name, $value);
         }
     }
     // add file to request
     $file = $query->getFile();
     if (preg_match('/^(http|https):\\/\\/(.+)/i', $file)) {
         $request->addParam('stream.url', $file);
     } else {
         if (is_readable($file)) {
             $request->setFileUpload($file);
             $request->addParam('resource.name', basename($query->getFile()));
             $request->addHeader('Content-Type: multipart/form-data');
         } else {
             throw new RuntimeException('Extract query file path/url invalid or not available');
         }
     }
     return $request;
 }
Пример #9
0
 public function build(QueryInterface $query)
 {
     /** @var Query $query */
     $request = parent::build($query);
     $request->setMethod(Request::METHOD_GET);
     $request->addParam('command', $query->getCommand());
     $request->addParam('clean', $query->getClean());
     $request->addParam('commit', $query->getCommit());
     $request->addParam('optimize', $query->getOptimize());
     $request->addParam('debug', $query->getDebug());
     $request->addParam('verbose', $query->getVerbose());
     if ($query->getEntity()) {
         $request->addParam('entity', $query->getEntity());
     }
     foreach ($query->getCustomParameters() as $key => $value) {
         $request->addParam($key, $value);
     }
     return $request;
 }
Пример #10
0
 /**
  * Build request for a Terms query
  *
  * @param  QueryInterface|Query   $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->setHandler($query->getHandler());
     $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());
     foreach ($query->getFields() as $field) {
         $request->addParam('terms.fl', trim($field));
     }
     foreach ($query->getRegexFlags() as $flag) {
         $request->addParam('terms.regex.flag', trim($flag));
     }
     return $request;
 }
Пример #11
0
 /**
  * Build request for a ping query
  *
  * @param  QueryInterface|Query $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = parent::build($query);
     $request->setMethod(Request::METHOD_GET);
     return $request;
 }