Пример #1
0
 public function testParseWithoutNumFound()
 {
     $data = array('response' => array('docs' => array(array('fieldA' => 1, 'fieldB' => 'Test'), array('fieldA' => 2, 'fieldB' => 'Test2'))), 'responseHeader' => array('status' => 1, 'QTime' => 13));
     $query = new Solarium_Query_Select(array('documentclass' => 'Solarium_Document_ReadWrite'));
     $query->getFacetSet();
     $resultStub = $this->getMock('Solarium_Result_Select', array(), array(), '', false);
     $resultStub->expects($this->once())->method('getData')->will($this->returnValue($data));
     $resultStub->expects($this->once())->method('getQuery')->will($this->returnValue($query));
     $parser = new Solarium_Client_ResponseParser_Select();
     $result = $parser->parse($resultStub);
     $this->assertEquals(1, $result['status']);
     $this->assertEquals(13, $result['queryTime']);
     $this->assertEquals(null, $result['numfound']);
 }
Пример #2
0
 /**
  * Get result data for the response
  *
  * @param Solarium_Result_MoreLikeThis $result
  * @return array
  */
 public function parse($result)
 {
     $data = $result->getData();
     $query = $result->getQuery();
     $parseResult = parent::parse($result);
     if (isset($data['interestingTerms']) && 'none' != $query->getInterestingTerms()) {
         $terms = $data['interestingTerms'];
         if ('details' == $query->getInterestingTerms()) {
             $tempTerms = array();
             for ($i = 0; $i < count($terms); $i += 2) {
                 $tempTerms[$terms[$i]] = $terms[$i + 1];
             }
             $terms = $tempTerms;
         }
         $parseResult['interestingTerms'] = $terms;
     }
     if (isset($data['match']['docs'][0]) && true == $query->getMatchInclude()) {
         $matchData = $data['match']['docs'][0];
         $documentClass = $query->getOption('documentclass');
         $fields = (array) $matchData;
         $parseResult['match'] = new $documentClass($fields);
     }
     return $parseResult;
 }