/** * @group functional */ public function testDeleteDocument() { $index = $this->_createIndex(); $type = new Type($index, 'user'); // Adds hans, john and rolf to the index $docs = array(new Document(1, array('username' => 'hans', 'test' => array('2', '3', '5'))), new Document(2, array('username' => 'john', 'test' => array('1', '3', '6'))), new Document(3, array('username' => 'rolf', 'test' => array('2', '3', '7')))); $type->addDocuments($docs); $index->refresh(); $document = $type->getDocument(1); $this->assertEquals(1, $document->getId()); $this->assertEquals('hans', $document->get('username')); $this->assertEquals(3, $type->count()); $type->deleteDocument($document); $index->refresh(); try { $type->getDocument(1); $this->fail('Document was not deleted'); } catch (NotFoundException $e) { $this->assertTrue(true); $this->assertEquals(2, $type->count(), 'Documents count in type should be 2'); } }
/** * Construit les données afin que celles-ci soient indexées (avec les fields corrects) * Méthode non testée et non utilisée pour le moment (Préférable de la tester avant..) * * @param CMbObject $datum the datum you want to construct * @param Elastica\Type $type the type where you want to index the data * * @return array */ function indexingDatum($datum, $type) { $datum_to_index = $this->constructDatum($datum); $document = $type->createDocument($datum['object_id'], $datum_to_index); switch ($datum['type']) { case 'create': $type->addDocument($document); break; case 'store': $type->updateDocument($document); break; case 'delete': $type->deleteDocument($document); break; case 'merge': //nothing to do /*supprimer un des deux et faire un update de l'autre.*/ break; default: return false; } $type->getIndex()->refresh(); $this->deleteDatumTemporaryTable($datum['search_indexing_id']); return true; }