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