Beispiel #1
0
 public function testSetFields()
 {
     $f1 = new Solarium_Query_Select_Component_Stats_Field();
     $f1->setKey('f1');
     $f2 = new Solarium_Query_Select_Component_Stats_Field();
     $f2->setKey('f2');
     $fields = array($f1, $f2);
     $this->_stats->addFields($fields);
     $f3 = new Solarium_Query_Select_Component_Stats_Field();
     $f3->setKey('f3');
     $f4 = new Solarium_Query_Select_Component_Stats_Field();
     $f4->setKey('f4');
     $fields2 = array('f3' => $f3, 'f4' => $f4);
     $this->_stats->setFields($fields2);
     $this->assertEquals($fields2, $this->_stats->getFields());
 }
Beispiel #2
0
 /**
  * Add request settings for the stats component
  *
  * @param Solarium_Query_Select_Component_Stats $component
  * @param Solarium_Client_Request $request
  * @return Solarium_Client_Request
  */
 public function build($component, $request)
 {
     // enable stats
     $request->addParam('stats', 'true');
     // add fields
     foreach ($component->getFields() as $field) {
         $request->addParam('stats.field', $field->getKey());
         // add field specific facet stats
         foreach ($field->getFacets() as $facet) {
             $request->addParam('f.' . $field->getKey() . '.stats.facet', $facet);
         }
     }
     // add facet stats for all fields
     foreach ($component->getFacets() as $facet) {
         $request->addParam('stats.facet', $facet);
     }
     return $request;
 }