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