public function testConfigMode() { $options = array('key' => 'myKey', 'exclude' => array('e1', 'e2'), 'field' => 'content', 'start' => 1, 'end' => 100, 'gap' => 10, 'hardend' => true, 'other' => 'all', 'include' => 'lower'); $this->_facet->setOptions($options); $this->assertEquals($options['key'], $this->_facet->getKey()); $this->assertEquals($options['exclude'], $this->_facet->getExcludes()); $this->assertEquals($options['field'], $this->_facet->getField()); $this->assertEquals($options['start'], $this->_facet->getStart()); $this->assertEquals($options['end'], $this->_facet->getEnd()); $this->assertEquals($options['gap'], $this->_facet->getGap()); $this->assertEquals($options['hardend'], $this->_facet->getHardend()); $this->assertEquals($options['other'], $this->_facet->getOther()); $this->assertEquals($options['include'], $this->_facet->getInclude()); }
/** * Add a facet result for a range facet * * @param Solarium_Query_Select_Component_Facet_Range $facet * @param array $data * @return void */ protected function _facetRange($facet, $data) { $key = $facet->getKey(); if (isset($data['facet_counts']['facet_ranges'][$key])) { $data = $data['facet_counts']['facet_ranges'][$key]; $before = isset($data['before']) ? $data['before'] : null; $after = isset($data['after']) ? $data['after'] : null; $between = isset($data['between']) ? $data['between'] : null; return new Solarium_Result_Select_Facet_Range($data['counts'], $before, $after, $between); } }
/** * Add a facet result for a range facet * * @param Solarium_Query_Select_Component_Facet_Range $facet * @param array $data * @return void */ protected function _facetRange($facet, $data) { $key = $facet->getKey(); if (isset($data['facet_counts']['facet_ranges'][$key])) { $data = $data['facet_counts']['facet_ranges'][$key]; $before = isset($data['before']) ? $data['before'] : null; $after = isset($data['after']) ? $data['after'] : null; $between = isset($data['between']) ? $data['between'] : null; $offset = 0; $counts = array(); while (isset($data['counts'][$offset]) && isset($data['counts'][$offset + 1])) { $counts[$data['counts'][$offset]] = $data['counts'][$offset + 1]; $offset += 2; } return new Solarium_Result_Select_Facet_Range($counts, $before, $after, $between); } }
/** * Add params for a range facet to request * * @param Solarium_Client_Request $request * @param Solarium_Query_Select_Component_Facet_Range $facet * @return void */ public function addFacetRange($request, $facet) { $field = $facet->getField(); $request->addParam('facet.range', $this->renderLocalParams($field, array('key' => $facet->getKey(), 'ex' => $facet->getExcludes()))); $request->addParam("f.{$field}.facet.range.start", $facet->getStart()); $request->addParam("f.{$field}.facet.range.end", $facet->getEnd()); $request->addParam("f.{$field}.facet.range.gap", $facet->getGap()); $request->addParam("f.{$field}.facet.range.hardend", $facet->getHardend()); if (null !== $facet->getOther()) { $other = explode(',', $facet->getOther()); foreach ($other as $otherValue) { $request->addParam("f.{$field}.facet.range.other", trim($otherValue)); } } if (null !== $facet->getInclude()) { $include = explode(',', $facet->getInclude()); foreach ($include as $includeValue) { $request->addParam("f.{$field}.facet.range.include", trim($includeValue)); } } }