Пример #1
0
 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());
 }
Пример #2
0
 /**
  * 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);
     }
 }
Пример #3
0
 /**
  * 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);
     }
 }
Пример #4
0
 /**
  * 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));
         }
     }
 }