Example #1
0
 public function testSetAndGetQuery()
 {
     $this->_facet->setQuery('category:1');
     $this->assertEquals('category:1', $this->_facet->getQuery());
 }
Example #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;
 }
 /**
  * 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);
     }
 }
Example #4
0
 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());
 }
Example #6
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())));
 }
 public function testSetAndGetQueryWithBind()
 {
     $this->_facet->setQuery('id:%1%', array(678));
     $this->assertEquals('id:678', $this->_facet->getQuery());
 }