/** * Gets the current document from the pointer. * * @returns xfDocumentHit */ public function current() { if (!isset($this->hitCache[$this->pointer])) { $hit = $this->hits[$this->pointer]; $doc = $this->engine->unwriteDocument($hit->getDocument()); $hit = new xfDocumentHit($doc, array('score' => $hit->score, 'id' => $hit->id)); $this->hitCache[$this->pointer] = $hit; } return $this->hitCache[$this->pointer]; }
$field->setBoost(4); $doc->addField(new xfFieldValue($field, 'bar', 'ascii')); $field = $engine->rewriteDocument($doc)->getField('foo'); $t->is($field->name, 'foo', '->rewriteDocument() rewrites the name'); $t->is($field->value, 'bar', '->rewriteDocument() rewrites the value'); $t->is($field->encoding, 'ascii', '->rewriteDocument() rewrites the encoding'); $t->is($field->boost, 4, '->rewriteDocument() rewrites the boost'); $child = new xfDocument('child'); $doc->addChild($child); $t->is($engine->rewriteDocument($doc)->getField('__sub_documents')->value, serialize(array('child')), '->rewriteDocument() caches child GUID'); $t->diag('->unwriteDocument()'); $doc = new Zend_Search_Lucene_Document(); $doc->addField(Zend_Search_Lucene_Field::Keyword('__guid', 'guid')); $doc->addField(Zend_Search_Lucene_Field::UnIndexed('__boosts', serialize(array()))); $doc->addField(Zend_Search_Lucene_Field::UnIndexed('__sub_documents', serialize(array()))); $response = $engine->unwriteDocument($doc); $t->isa_ok($response, 'xfDocument', '->unwriteDocument() returns an xfDocument'); $t->is($response->getGuid(), 'guid', '->unwriteDocument() unwrites the GUID'); $fields = array('isStored' => xfField::STORED, 'isIndexed' => xfField::INDEXED, 'isTokenized' => xfField::TOKENIZED, 'isBinary' => xfField::BINARY); foreach ($fields as $property => $type) { $name = 'test'; $field = new Zend_Search_Lucene_Field($name, 'bar', 'utf8', false, false, false, false); $field->{$property} = true; $doc->addField($field); $doc->addField(Zend_Search_Lucene_Field::UnIndexed('__boosts', serialize(array('test' => 1)))); $response = $engine->unwriteDocument($doc)->getField('test')->getField()->getType(); $t->is($response, $type, '->unwriteDocument() can exclusively handle "' . $property . '"'); } $t->diag('->add()'); $doc = new xfDocument('guid'); $doc->addField(new xfFieldValue(new xfField('name', xfField::KEYWORD), 'carl'));