Deletes entries in the db based on a query.
public deleteByQuery ( |
||
$query | Query object | |
$options | array | Optional params |
Результат |
/** * @group functional */ public function testDeleteByQueryWithQueryAndOptions() { $this->_checkPlugin('delete-by-query'); $index = $this->_createIndex(null, true, 2); $type = new Type($index, 'test'); $doc = new Document(1, array('name' => 'ruflin nicolas')); $doc->setRouting('first_routing'); $type->addDocument($doc); $doc = new Document(2, array('name' => 'ruflin')); $doc->setRouting('second_routing'); $type->addDocument($doc); $index->refresh(); $response = $index->search('ruflin*'); $this->assertEquals(2, $response->count()); $response = $index->search('ruflin*', array('routing' => 'first_routing')); $this->assertEquals(1, $response->count()); $response = $index->search('nicolas'); $this->assertEquals(1, $response->count()); // Route to the wrong document id; should not delete $response = $type->deleteByQuery(new SimpleQueryString('nicolas'), array('routing' => 'second_routing')); $this->assertTrue($response->isOk()); $index->refresh(); $response = $index->search('ruflin*'); $this->assertEquals(2, $response->count()); $response = $index->search('nicolas'); $this->assertEquals(1, $response->count()); // Delete first document $response = $type->deleteByQuery(new SimpleQueryString('nicolas'), array('routing' => 'first_routing')); $this->assertTrue($response->isOk()); $index->refresh(); // Makes sure, document is deleted $response = $index->search('ruflin*'); $this->assertEquals(1, $response->count()); $response = $index->search('nicolas'); $this->assertEquals(0, $response->count()); }
public function testDeleteByQuery() { $index = $this->_createIndex(); $type = new Type($index, 'test'); $type->addDocument(new Document(1, array('name' => 'ruflin nicolas'))); $type->addDocument(new Document(2, array('name' => 'ruflin'))); $index->refresh(); $response = $index->search('ruflin*'); $this->assertEquals(2, $response->count()); $response = $index->search('nicolas'); $this->assertEquals(1, $response->count()); // Delete first document $response = $type->deleteByQuery('nicolas'); $this->assertTrue($response->isOk()); $index->refresh(); // Makes sure, document is deleted $response = $index->search('ruflin*'); $this->assertEquals(1, $response->count()); $response = $index->search('nicolas'); $this->assertEquals(0, $response->count()); }