Commit 83d953ba authored by chadicus's avatar chadicus

Remove indentation from Grouping::parse()

parent 70383b14
...@@ -61,75 +61,77 @@ class Grouping implements ComponentParserInterface ...@@ -61,75 +61,77 @@ class Grouping implements ComponentParserInterface
*/ */
public function parse($query, $grouping, $data) public function parse($query, $grouping, $data)
{ {
if (!isset($data['grouped'])) {
return new Result(array());
}
$groups = array(); $groups = array();
if (isset($data['grouped'])) { // parse field groups
// parse field groups $valueResultClass = $grouping->getOption('resultvaluegroupclass');
$valueResultClass = $grouping->getOption('resultvaluegroupclass'); $documentClass = $query->getOption('documentclass');
$documentClass = $query->getOption('documentclass');
// check grouping fields as well as the grouping function (either can be used in the query)
foreach (array_merge($grouping->getFields(), array($grouping->getFunction())) as $field) {
if (isset($data['grouped'][$field])) {
$result = $data['grouped'][$field];
$matches = (isset($result['matches'])) ? $result['matches'] : null;
$groupCount = (isset($result['ngroups'])) ? $result['ngroups'] : null;
$valueGroups = array();
foreach ($result['groups'] as $valueGroupResult) {
$value = (isset($valueGroupResult['groupValue'])) ?
$valueGroupResult['groupValue'] : null;
$numFound = (isset($valueGroupResult['doclist']['numFound'])) ?
$valueGroupResult['doclist']['numFound'] : null;
$start = (isset($valueGroupResult['doclist']['start'])) ?
$valueGroupResult['doclist']['start'] : null;
$maxScore = (isset($valueGroupResult['doclist']['maxScore'])) ?
$valueGroupResult['doclist']['maxScore'] : null;
// create document instances
$documents = array();
if (isset($valueGroupResult['doclist']['docs']) &&
is_array($valueGroupResult['doclist']['docs'])) {
foreach ($valueGroupResult['doclist']['docs'] as $doc) {
$documents[] = new $documentClass($doc);
}
}
$valueGroups[] = new $valueResultClass($value, $numFound, $start, $documents, $maxScore, $query); // check grouping fields as well as the grouping function (either can be used in the query)
} foreach (array_merge($grouping->getFields(), array($grouping->getFunction())) as $field) {
if (isset($data['grouped'][$field])) {
$result = $data['grouped'][$field];
$groups[$field] = new FieldGroup($matches, $groupCount, $valueGroups); $matches = (isset($result['matches'])) ? $result['matches'] : null;
} $groupCount = (isset($result['ngroups'])) ? $result['ngroups'] : null;
} $valueGroups = array();
foreach ($result['groups'] as $valueGroupResult) {
$value = (isset($valueGroupResult['groupValue'])) ?
$valueGroupResult['groupValue'] : null;
$numFound = (isset($valueGroupResult['doclist']['numFound'])) ?
$valueGroupResult['doclist']['numFound'] : null;
// parse query groups $start = (isset($valueGroupResult['doclist']['start'])) ?
$groupResultClass = $grouping->getOption('resultquerygroupclass'); $valueGroupResult['doclist']['start'] : null;
foreach ($grouping->getQueries() as $groupQuery) {
if (isset($data['grouped'][$groupQuery])) {
$result = $data['grouped'][$groupQuery];
// get statistics $maxScore = (isset($valueGroupResult['doclist']['maxScore'])) ?
$matches = (isset($result['matches'])) ? $result['matches'] : null; $valueGroupResult['doclist']['maxScore'] : null;
$numFound = (isset($result['doclist']['numFound'])) ? $result['doclist']['numFound'] : null;
$start = (isset($result['doclist']['start'])) ? $result['doclist']['start'] : null;
$maxScore = (isset($result['doclist']['maxScore'])) ? $result['doclist']['maxScore'] : null;
// create document instances // create document instances
$documentClass = $query->getOption('documentclass');
$documents = array(); $documents = array();
if (isset($result['doclist']['docs']) && is_array($result['doclist']['docs'])) { if (isset($valueGroupResult['doclist']['docs']) &&
foreach ($result['doclist']['docs'] as $doc) { is_array($valueGroupResult['doclist']['docs'])) {
foreach ($valueGroupResult['doclist']['docs'] as $doc) {
$documents[] = new $documentClass($doc); $documents[] = new $documentClass($doc);
} }
} }
// create a group result object $valueGroups[] = new $valueResultClass($value, $numFound, $start, $documents, $maxScore, $query);
$group = new $groupResultClass($matches, $numFound, $start, $maxScore, $documents, $query);
$groups[$groupQuery] = $group;
} }
$groups[$field] = new FieldGroup($matches, $groupCount, $valueGroups);
}
}
// parse query groups
$groupResultClass = $grouping->getOption('resultquerygroupclass');
foreach ($grouping->getQueries() as $groupQuery) {
if (isset($data['grouped'][$groupQuery])) {
$result = $data['grouped'][$groupQuery];
// get statistics
$matches = (isset($result['matches'])) ? $result['matches'] : null;
$numFound = (isset($result['doclist']['numFound'])) ? $result['doclist']['numFound'] : null;
$start = (isset($result['doclist']['start'])) ? $result['doclist']['start'] : null;
$maxScore = (isset($result['doclist']['maxScore'])) ? $result['doclist']['maxScore'] : null;
// create document instances
$documentClass = $query->getOption('documentclass');
$documents = array();
if (isset($result['doclist']['docs']) && is_array($result['doclist']['docs'])) {
foreach ($result['doclist']['docs'] as $doc) {
$documents[] = new $documentClass($doc);
}
}
// create a group result object
$group = new $groupResultClass($matches, $numFound, $start, $maxScore, $documents, $query);
$groups[$groupQuery] = $group;
} }
} }
......
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