Example #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());
 }
Example #2
0
 /**
  * Add a facet result for a facet query
  *
  * @param  QueryFacetQuery  $facet
  * @param  array            $data
  * @return ResultFacetQuery
  */
 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 ResultFacetQuery($value);
     }
 }
Example #3
0
 /**
  * Add a facet result for a facet query
  *
  * @param  QueryFacetQuery       $facet
  * @param  array                 $data
  * @return ResultFacetQuery|null
  */
 protected function facetQuery($facet, $data)
 {
     $key = $facet->getKey();
     if (!isset($data['facet_counts']['facet_queries'][$key])) {
         return null;
     }
     return new ResultFacetQuery($data['facet_counts']['facet_queries'][$key]);
 }
Example #4
0
 /**
  * Add params for a facet query to request
  *
  * @param  Request    $request
  * @param  FacetQuery $facet
  * @return void
  */
 public function addFacetQuery($request, $facet)
 {
     $request->addParam('facet.query', $this->renderLocalParams($facet->getQuery(), array('key' => $facet->getKey(), 'ex' => $facet->getExcludes())));
 }
Example #5
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.
  *
  * @throws InvalidArgumentException
  * @param  Query|array              $facetQuery
  * @return self                     Provides fluent interface
  */
 public function addQuery($facetQuery)
 {
     if (is_array($facetQuery)) {
         $facetQuery = new Query($facetQuery);
     }
     $key = $facetQuery->getKey();
     if (0 === strlen($key)) {
         throw new InvalidArgumentException('A facetquery must have a key value');
     }
     if (array_key_exists($key, $this->facetQueries)) {
         throw new InvalidArgumentException('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;
 }