* @copyright Copyright 2011 Gasol Wu * @license http://github.com/basdenooijer/solarium/raw/master/COPYING * @link http://www.solarium-project.org/ * * @package Solarium * @subpackage Client */ /** * Build a Terms query request * * @package Solarium * @subpackage Client */ class Solarium_Client_RequestBuilder_Terms extends Solarium_Client_RequestBuilder { /** * 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; } }