/** * Get result data for the response * * @param Solarium_Result_Terms $result * @return array */ public function parse($result) { $data = $result->getData(); $query = $result->getQuery(); $status = null; $queryTime = null; if (isset($data['responseHeader'])) { $status = $data['responseHeader']['status']; $queryTime = $data['responseHeader']['QTime']; } $suggestions = array(); $collation = null; if (isset($data['spellcheck']['suggestions']) && is_array($data['spellcheck']['suggestions'])) { $suggestResults = $data['spellcheck']['suggestions']; $termClass = $query->getOption('termclass'); for ($i = 0; $i < count($suggestResults); $i += 2) { $term = $suggestResults[$i]; $termData = $suggestResults[$i + 1]; if ($term == 'collation' && $i == count($suggestResults) - 2) { $collation = $termData; } else { $suggestions[$term] = new $termClass($termData['numFound'], $termData['startOffset'], $termData['endOffset'], $termData['suggestion']); } } } return array('status' => $status, 'queryTime' => $queryTime, 'results' => $suggestions, 'collation' => $collation); }
/** * Get result data for the response * * @param Solarium_Result_Terms $result * @return array */ public function parse($result) { $termResults = array(); $data = $result->getData(); $field = $result->getQuery()->getFields(); $fields = explode(',', $field); foreach ($fields as $field) { $field = trim($field); if (isset($data['terms'][$field])) { $terms = $data['terms'][$field]; for ($i = 0; $i < count($terms); $i += 2) { $termResults[$field][$terms[$i]] = $terms[$i + 1]; } } } return array('status' => $data['responseHeader']['status'], 'queryTime' => $data['responseHeader']['QTime'], 'results' => $termResults); }