Commit 275056b6 authored by Bas de Nooijer's avatar Bas de Nooijer

Added truncate param to grouping component

parent 5c2adfa1
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
*/ */
class Solarium_Client_RequestBuilder_Select_Component_Grouping class Solarium_Client_RequestBuilder_Select_Component_Grouping
{ {
/** /**
* Add request settings for Grouping * Add request settings for Grouping
* *
...@@ -65,6 +65,7 @@ class Solarium_Client_RequestBuilder_Select_Component_Grouping ...@@ -65,6 +65,7 @@ class Solarium_Client_RequestBuilder_Select_Component_Grouping
$request->addParam('group.main', $component->getMainResult()); $request->addParam('group.main', $component->getMainResult());
$request->addParam('group.ngroups', $component->getNumberOfGroups()); $request->addParam('group.ngroups', $component->getNumberOfGroups());
$request->addParam('group.cache.percent', $component->getCachePercentage()); $request->addParam('group.cache.percent', $component->getCachePercentage());
$request->addParam('group.truncate', $component->getTruncate());
return $request; return $request;
} }
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
* @link http://wiki.apache.org/solr/FieldCollapsing * @link http://wiki.apache.org/solr/FieldCollapsing
* *
* @since 2.1.0 * @since 2.1.0
* *
* @package Solarium * @package Solarium
* @subpackage Query * @subpackage Query
*/ */
...@@ -64,7 +64,7 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com ...@@ -64,7 +64,7 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com
/** /**
* Component type * Component type
* *
* @var string * @var string
*/ */
protected $_type = Solarium_Query_Select::COMPONENT_GROUPING; protected $_type = Solarium_Query_Select::COMPONENT_GROUPING;
...@@ -78,7 +78,7 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com ...@@ -78,7 +78,7 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com
/** /**
* Queries for grouping * Queries for grouping
* *
* @var array * @var array
*/ */
protected $_queries = array(); protected $_queries = array();
...@@ -381,5 +381,29 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com ...@@ -381,5 +381,29 @@ class Solarium_Query_Select_Component_Grouping extends Solarium_Query_Select_Com
{ {
return $this->getOption('cachepercentage'); return $this->getOption('cachepercentage');
} }
/**
* Set truncate option
*
* If true, facet counts are based on the most relevant document of each group matching the query.
* Same applies for StatsComponent. Default is false. Only available from Solr 3.4
*
* @param boolean $value
* @return Solarium_Query_Select_Component_Grouping Provides fluent interface
*/
public function setTruncate($value)
{
return $this->_setOption('truncate', $value);
}
/**
* Get truncate option
*
* @return boolean|null
*/
public function getTruncate()
{
return $this->getOption('truncate');
}
} }
\ No newline at end of file
...@@ -46,6 +46,7 @@ class Solarium_Client_RequestBuilder_Select_Component_GroupingTest extends PHPUn ...@@ -46,6 +46,7 @@ class Solarium_Client_RequestBuilder_Select_Component_GroupingTest extends PHPUn
$component->setMainResult(true); $component->setMainResult(true);
$component->setNumberOfGroups(false); $component->setNumberOfGroups(false);
$component->setCachePercentage(50); $component->setCachePercentage(50);
$component->setTruncate(true);
$request = $builder->build($component, $request); $request = $builder->build($component, $request);
...@@ -60,6 +61,7 @@ class Solarium_Client_RequestBuilder_Select_Component_GroupingTest extends PHPUn ...@@ -60,6 +61,7 @@ class Solarium_Client_RequestBuilder_Select_Component_GroupingTest extends PHPUn
'group.main' => 'true', 'group.main' => 'true',
'group.ngroups' => 'false', 'group.ngroups' => 'false',
'group.cache.percent' => 50, 'group.cache.percent' => 50,
'group.truncate' => 'true',
), ),
$request->getParams() $request->getParams()
); );
......
...@@ -53,6 +53,7 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes ...@@ -53,6 +53,7 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes
'mainresult' => false, 'mainresult' => false,
'numberofgroups' => true, 'numberofgroups' => true,
'cachepercentage' => 45, 'cachepercentage' => 45,
'truncate' => true,
); );
$this->_grouping->setOptions($options); $this->_grouping->setOptions($options);
...@@ -65,6 +66,7 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes ...@@ -65,6 +66,7 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes
$this->assertEquals($options['mainresult'], $this->_grouping->getMainResult()); $this->assertEquals($options['mainresult'], $this->_grouping->getMainResult());
$this->assertEquals($options['numberofgroups'], $this->_grouping->getNumberOfGroups()); $this->assertEquals($options['numberofgroups'], $this->_grouping->getNumberOfGroups());
$this->assertEquals($options['cachepercentage'], $this->_grouping->getCachePercentage()); $this->assertEquals($options['cachepercentage'], $this->_grouping->getCachePercentage());
$this->assertEquals($options['truncate'], $this->_grouping->getTruncate());
} }
public function testGetType() public function testGetType()
...@@ -195,5 +197,16 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes ...@@ -195,5 +197,16 @@ class Solarium_Query_Select_Component_GroupingTest extends PHPUnit_Framework_Tes
$this->_grouping->getCachePercentage() $this->_grouping->getCachePercentage()
); );
} }
public function testSetAndGetTruncate()
{
$value = true;
$this->_grouping->setTruncate($value);
$this->assertEquals(
$value,
$this->_grouping->getTruncate()
);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment