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()); }
/** * 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); } }
/** * 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]); }
/** * 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()))); }
/** * 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; }