Commit 7236f732 authored by Bas de Nooijer's avatar Bas de Nooijer

Use maximum score of first group for filtering

parent f207171b
......@@ -43,6 +43,11 @@ use Solarium\QueryType\Select\Result\Grouping\QueryGroup as StandardQueryGroupRe
class QueryGroupResult extends StandardQueryGroupResult
{
/**
* @var float
*/
static protected $overallMaximumScore;
/**
* Constructor
*
......@@ -55,10 +60,15 @@ class QueryGroupResult extends StandardQueryGroupResult
*/
public function __construct($matches, $numFound, $start, $maximumScore, $documents, $query)
{
// Use the maximumScore of the first group as maximum for all groups
if (self::$overallMaximumScore == null) {
self::$overallMaximumScore = $maximumScore;
}
$filter = new Filter;
$mode = $query->getFilterMode();
$ratio = $query->getFilterRatio();
$documents = $filter->filterDocuments($documents, $maximumScore, $ratio, $mode);
$documents = $filter->filterDocuments($documents, self::$overallMaximumScore, $ratio, $mode);
parent::__construct($matches, $numFound, $start, $maximumScore, $documents, $query);
}
......
......@@ -43,6 +43,11 @@ use Solarium\QueryType\Select\Result\Grouping\ValueGroup as StandardValueGroup;
class ValueGroupResult extends StandardValueGroup
{
/**
* @var float
*/
static protected $overallMaximumScore;
/**
* Constructor
*
......@@ -54,10 +59,15 @@ class ValueGroupResult extends StandardValueGroup
*/
public function __construct($value, $numFound, $start, $documents, $maximumScore, $query)
{
// Use the maximumScore of the first group as maximum for all groups
if (self::$overallMaximumScore == null) {
self::$overallMaximumScore = $maximumScore;
}
$filter = new Filter;
$mode = $query->getFilterMode();
$ratio = $query->getFilterRatio();
$documents = $filter->filterDocuments($documents, $maximumScore, $ratio, $mode);
$documents = $filter->filterDocuments($documents, self::$overallMaximumScore, $ratio, $mode);
parent::__construct($value, $numFound, $start, $documents);
}
......
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