示例#1
0
 /**
  * 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);
     }
 }
示例#2
0
 /**
  * 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);
     }
 }
示例#3
0
 public function testSetAndGetIncludeArray()
 {
     $this->facet->setInclude(array('lower', 'upper'));
     $this->assertEquals(array('lower', 'upper'), $this->facet->getInclude());
 }