public function testConfigModeWithSingleValueTag() { $fq = new Solarium_Query_Select_FilterQuery(array('tag' => 't1', 'key' => 'k1', 'query' => 'id:[10 TO 20]')); $this->assertEquals(array('t1'), $fq->getTags()); $this->assertEquals('k1', $fq->getKey()); $this->assertEquals('id:[10 TO 20]', $fq->getQuery()); }
public function loadByQuery($object, $text) { $oQuery = new Solarium_Query_Select_FilterQuery(); $oQuery->setKey('fq_show_products')->addTag('showProducts')->setQuery($text); $this->_results = $this->_getSolrReadAdapter()->getDocuments('catalog/product', array($oQuery), true); if (is_array($this->_results) && count($this->_results) > 0) { $aData = array(); foreach (current($this->_results) as $oResult) { $aData[] = $oResult->getData(); } $object->addData($aData); } return $this; }
/** * Add a filter query * * Supports a filterquery instance or a config array, in that case a new * filterquery instance wil be created based on the options. * * @param Solarium_Query_Select_FilterQuery|array $filterQuery * @return Solarium_Query_Select Provides fluent interface */ public function addFilterQuery($filterQuery) { if (is_array($filterQuery)) { $filterQuery = new Solarium_Query_Select_FilterQuery($filterQuery); } $key = $filterQuery->getKey(); if (0 === strlen($key)) { throw new Solarium_Exception('A filterquery must have a key value'); } //double add calls for the same FQ are ignored, but non-unique keys cause an exception //@todo add trigger_error with a notice for double add calls? if (array_key_exists($key, $this->_filterQueries) && $this->_filterQueries[$key] !== $filterQuery) { throw new Solarium_Exception('A filterquery must have a unique key value within a query'); } else { $this->_filterQueries[$key] = $filterQuery; } return $this; }
/** * Add a filter query * * Supports a filterquery instance or a config array, in that case a new * filterquery instance wil be created based on the options. * * @param Solarium_Query_Select_FilterQuery|array $filterQuery * @return Solarium_Query_Select Provides fluent interface */ public function addFilterQuery($filterQuery) { if (is_array($filterQuery)) { $filterQuery = new Solarium_Query_Select_FilterQuery($filterQuery); } $key = $filterQuery->getKey(); if (0 === strlen($key)) { throw new Solarium_Exception('A filterquery must have a key value'); } if (array_key_exists($key, $this->_filterQueries)) { throw new Solarium_Exception('A filterquery must have a unique key' . ' value within a query'); } $this->_filterQueries[$key] = $filterQuery; return $this; }
public function testSetFilterQueries() { $fq1 = new Solarium_Query_Select_FilterQuery(); $fq1->setKey('fq1')->setQuery('category:1'); $fq2 = new Solarium_Query_Select_FilterQuery(); $fq2->setKey('fq2')->setQuery('category:2'); $filterQueries1 = array('fq1' => $fq1, 'fq2' => $fq2); $this->_query->addFilterQueries($filterQueries1); $fq3 = new Solarium_Query_Select_FilterQuery(); $fq3->setKey('fq3')->setQuery('category:3'); $fq4 = new Solarium_Query_Select_FilterQuery(); $fq4->setKey('fq4')->setQuery('category:4'); $filterQueries2 = array('fq3' => $fq3, 'fq4' => $fq4); $this->_query->setFilterQueries($filterQueries2); $this->assertEquals($filterQueries2, $this->_query->getFilterQueries()); }