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(array($options['other']), $this->facet->getOther()); $this->assertEquals(array($options['include']), $this->facet->getInclude()); }
/** * Add a facet result for a range facet * * @param Query $query * @param QueryFacetRange $facet * @param array $data * @return ResultFacetRange */ protected function facetRange($query, $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; $start = isset($data['start']) ? $data['start'] : null; $end = isset($data['end']) ? $data['end'] : null; $gap = isset($data['gap']) ? $data['gap'] : null; if ($query->getResponseWriter() == $query::WT_JSON) { $data['counts'] = $this->convertToKeyValueArray($data['counts']); } return new ResultFacetRange($data['counts'], $before, $after, $between, $start, $end, $gap); } }
/** * Add params for a range facet to request * * @param Request $request * @param FacetRange $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()); $request->addParam("f.{$field}.facet.mincount", $facet->getMinCount()); foreach ($facet->getOther() as $otherValue) { $request->addParam("f.{$field}.facet.range.other", $otherValue); } foreach ($facet->getInclude() as $includeValue) { $request->addParam("f.{$field}.facet.range.include", $includeValue); } }