/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }