public function testParse() { $data = array('debug' => array('querystring' => 'dummy-qs', 'parsedquery' => 'dummy-pq', 'QParser' => 'dummy-qp', 'otherQuery' => 'dummy-oq', 'explain' => array('MA147LL/A' => array('match' => true, 'value' => 0.5, 'description' => 'fieldWeight(text:ipod in 5), product of:', 'details' => array(array('match' => true, 'value' => 0.5, 'description' => 'sum of:', 'details' => array(array('match' => true, 'value' => 0.25, 'description' => 'weight(dummyfield:flachdach^250.0 in 1311) [], result of:'), array('match' => true, 'value' => 0.25, 'description' => 'tf(termFreq(text:ipod)=1)')))))), 'explainOther' => array('IW-02' => array('match' => true, 'value' => 0.6, 'description' => 'fieldWeight(text:ipod in 6), product of:', 'details' => array(array('match' => true, 'value' => 0.7, 'description' => 'tf(termFreq(text:ipod)=1)')))), 'timing' => array('time' => 36, 'prepare' => array('time' => 12, 'org.apache.solr.handler.component.QueryComponent' => array('time' => 1), 'org.apache.solr.handler.component.FacetComponent' => array('time' => 11)), 'process' => array('time' => 8, 'org.apache.solr.handler.component.QueryComponent' => array('time' => 5), 'org.apache.solr.handler.component.MoreLikeThisComponent' => array('time' => 3))))); $result = $this->parser->parse(null, null, $data); $this->assertEquals('dummy-qs', $result->getQueryString()); $this->assertEquals('dummy-pq', $result->getParsedQuery()); $this->assertEquals('dummy-qp', $result->getQueryParser()); $this->assertEquals('dummy-oq', $result->getOtherQuery()); $this->assertEquals(1, count($result->getExplain())); $doc = $result->getExplain()->getDocument('MA147LL/A'); $this->assertEquals(0.5, $doc->getValue()); $this->assertEquals(true, $doc->getMatch()); $this->assertEquals('fieldWeight(text:ipod in 5), product of:', $doc->getDescription()); $expectedDetail = new Detail(true, 0.5, 'sum of:'); $expectedDetail->setSubDetails(array(array('match' => true, 'value' => 0.25, 'description' => 'weight(dummyfield:flachdach^250.0 in 1311) [], result of:'), array('match' => true, 'value' => 0.25, 'description' => 'tf(termFreq(text:ipod)=1)'))); $this->assertEquals(array($expectedDetail), $doc->getDetails()); $this->assertEquals(1, count($result->getExplainOther())); $doc = $result->getExplainOther()->getDocument('IW-02'); $this->assertEquals(0.6, $doc->getValue()); $this->assertEquals(true, $doc->getMatch()); $this->assertEquals('fieldWeight(text:ipod in 6), product of:', $doc->getDescription()); $this->assertEquals(array(new Detail(true, 0.7, 'tf(termFreq(text:ipod)=1)')), $doc->getDetails()); $timing = $result->getTiming(); $this->assertEquals(36, $timing->getTime()); $this->assertEquals(2, count($timing->getPhases())); $phase = $timing->getPhase('process'); $this->assertEquals(8, $phase->getTime()); $this->assertEquals(2, count($phase->getTimings())); $this->assertEquals(5, $phase->getTiming('org.apache.solr.handler.component.QueryComponent')); $this->assertEquals(3, $phase->getTiming('org.apache.solr.handler.component.MoreLikeThisComponent')); }
public function testSetSubDetails() { $subDetailsDummy = array('dummy', 'testing'); $this->result->setSubDetails($subDetailsDummy); $this->assertEquals($subDetailsDummy, $this->result->getSubDetails()); }
/** * Parse data into a documentset. * * Used for explain and explainOther * * @param array $data * * @return DocumentSet */ protected function parseDocumentSet($data) { $docs = array(); foreach ($data as $key => $documentData) { $details = array(); if (isset($documentData['details']) && is_array($documentData['details'])) { foreach ($documentData['details'] as $detailData) { $detail = new Detail($detailData['match'], $detailData['value'], $detailData['description']); if (isset($detailData['details']) && is_array($detailData['details'])) { $detail->setSubDetails($detailData['details']); } $details[] = $detail; } } $docs[$key] = new Document($key, $documentData['match'], $documentData['value'], $documentData['description'], $details); } return new DocumentSet($docs); }
public function testGetDescription() { $this->assertEquals($this->description, $this->result->getDescription()); }