public function testSetAndGetQuery() { $this->_facet->setQuery('category:1'); $this->assertEquals('category:1', $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); } }
public function testSetFacets() { $fq1 = new Solarium_Query_Select_Component_Facet_Query(); $fq1->setKey('f1')->setQuery('category:1'); $fq2 = new Solarium_Query_Select_Component_Facet_Query(); $fq2->setKey('f2')->setQuery('category:2'); $facets = array('f1' => $fq1, 'f2' => $fq2); $this->_facetSet->addFacets($facets); $fq3 = new Solarium_Query_Select_Component_Facet_Query(); $fq3->setKey('f3')->setQuery('category:3'); $fq4 = new Solarium_Query_Select_Component_Facet_Query(); $fq4->setKey('f4')->setQuery('category:4'); $facets = array('f3' => $fq3, 'f4' => $fq4); $this->_facetSet->setFacets($facets); $this->assertEquals($facets, $this->_facetSet->getFacets()); }
public function testClearExcludesForwarding() { $this->_facet->addExclude('fq1'); $this->_facet->addExclude('fq2'); $facetQuery = new Solarium_Query_Select_Component_Facet_Query(); $facetQuery->setKey('k1'); $facetQuery->setQuery('category:1'); $this->_facet->addQuery($facetQuery); $this->assertEquals(array('fq1', 'fq2'), $facetQuery->getExcludes()); $this->_facet->clearExcludes(); $this->assertEquals(array(), $facetQuery->getExcludes()); }
/** * 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()))); }
public function testSetAndGetQueryWithBind() { $this->_facet->setQuery('id:%1%', array(678)); $this->assertEquals('id:678', $this->_facet->getQuery()); }