Esempio n. 1
0
 public function testConfigMode()
 {
     $options = array('key' => 'myKey', 'exclude' => array('e1', 'e2'), 'query' => 'category:1');
     $this->_facet->setOptions($options);
     $this->assertEquals($options['key'], $this->_facet->getKey());
     $this->assertEquals($options['exclude'], $this->_facet->getExcludes());
     $this->assertEquals($options['query'], $this->_facet->getQuery());
 }
Esempio n. 2
0
 /**
  * Add a facetquery
  *
  * Supports a facetquery instance or a config array, in that case a new
  * facetquery instance wil be created based on the options.
  *
  * @param Solarium_Query_Select_Component_Facet_Query|array $facetQuery
  * @return Solarium_Query_Select_Component_Facet_MultiQuery Provides fluent interface
  */
 public function addQuery($facetQuery)
 {
     if (is_array($facetQuery)) {
         $facetQuery = new Solarium_Query_Select_Component_Facet_Query($facetQuery);
     }
     $key = $facetQuery->getKey();
     if (0 === strlen($key)) {
         throw new Solarium_Exception('A facetquery must have a key value');
     }
     if (array_key_exists($key, $this->_facetQueries)) {
         throw new Solarium_Exception('A query must have a unique key' . ' value within a multiquery facet');
     }
     // forward shared excludes
     $facetQuery->addExcludes($this->getExcludes());
     $this->_facetQueries[$key] = $facetQuery;
     return $this;
 }
Esempio n. 3
0
 /**
  * Add a facet result for a facet query
  *
  * @param Solarium_Query_Select_Component_Facet_Query $facet
  * @param array $data
  * @return void
  */
 protected function _facetQuery($facet, $data)
 {
     $key = $facet->getKey();
     if (isset($data['facet_counts']['facet_queries'][$key])) {
         $value = $data['facet_counts']['facet_queries'][$key];
         return new Solarium_Result_Select_Facet_Query($value);
     }
 }
Esempio n. 4
0
 /**
  * Add params for a facet query to request
  *
  * @param Solarium_Client_Request $request
  * @param Solarium_Query_Select_Component_Facet_Query $facet
  * @return void
  */
 public function addFacetQuery($request, $facet)
 {
     $request->addParam('facet.query', $this->renderLocalParams($facet->getQuery(), array('key' => $facet->getKey(), 'ex' => $facet->getExcludes())));
 }