Esempio n. 1
0
 /**
  * Get result data for the response
  *
  * @param Solarium_Result_Select $result
  * @return array
  */
 public function parse($result)
 {
     $data = $result->getData();
     $query = $result->getQuery();
     // create document instances
     $documentClass = $query->getOption('documentclass');
     $documents = array();
     if (isset($data['response']['docs'])) {
         foreach ($data['response']['docs'] as $doc) {
             $fields = (array) $doc;
             $documents[] = new $documentClass($fields);
         }
     }
     // component results
     $components = array();
     $types = $query->getComponentTypes();
     foreach ($query->getComponents() as $component) {
         $componentParserClass = $types[$component->getType()]['responseparser'];
         if (!empty($componentParserClass)) {
             $componentParser = new $componentParserClass();
             $components[$component->getType()] = $componentParser->parse($query, $component, $data);
         }
     }
     return array('status' => $data['responseHeader']['status'], 'queryTime' => $data['responseHeader']['QTime'], 'numfound' => $data['response']['numFound'], 'documents' => $documents, 'components' => $components);
 }