Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 public function testGetTermsWithInvalidFieldName()
 {
     $this->assertEquals(array(), $this->_result->getTerms('fieldX'));
 }