本文整理汇总了PHP中Elastica\Index::optimize方法的典型用法代码示例。如果您正苦于以下问题:PHP Index::optimize方法的具体用法?PHP Index::optimize怎么用?PHP Index::optimize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Elastica\Index
的用法示例。
在下文中一共展示了Index::optimize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSnapshotAndRestore
/**
* @group functional
*/
public function testSnapshotAndRestore()
{
$repositoryName = 'testrepo';
$location = $this->_snapshotPath . 'backup2';
// register the repository
$response = $this->_snapshot->registerRepository($repositoryName, 'fs', array('location' => $location));
$this->assertTrue($response->isOk());
// create a snapshot of our test index
$snapshotName = 'test_snapshot_1';
$response = $this->_snapshot->createSnapshot($repositoryName, $snapshotName, array('indices' => $this->_index->getName()), true);
// ensure that the snapshot was created properly
$this->assertTrue($response->isOk());
$this->assertArrayHasKey('snapshot', $response->getData());
$data = $response->getData();
$this->assertContains($this->_index->getName(), $data['snapshot']['indices']);
$this->assertEquals(1, sizeof($data['snapshot']['indices']));
// only the specified index should be present
$this->assertEquals($snapshotName, $data['snapshot']['snapshot']);
// retrieve data regarding the snapshot
$response = $this->_snapshot->getSnapshot($repositoryName, $snapshotName);
$this->assertContains($this->_index->getName(), $response['indices']);
// delete our test index
$this->_index->delete();
// restore the index from our snapshot
$response = $this->_snapshot->restoreSnapshot($repositoryName, $snapshotName, array(), true);
$this->assertTrue($response->isOk());
$this->_index->refresh();
$this->_index->optimize();
// ensure that the index has been restored
$count = $this->_index->getType('test')->count();
$this->assertEquals(sizeof($this->_docs), $count);
// delete the snapshot
$response = $this->_snapshot->deleteSnapshot($repositoryName, $snapshotName);
$this->assertTrue($response->isOk());
// ensure that the snapshot has been deleted
$this->setExpectedException('Elastica\\Exception\\NotFoundException');
$this->_snapshot->getSnapshot($repositoryName, $snapshotName);
}
示例2: testSnapshotAndRestore
public function testSnapshotAndRestore()
{
$repositoryName = "test_repository";
$location = "/tmp/{$repositoryName}";
// register the repository
$response = $this->_snapshot->registerRepository($repositoryName, "fs", array("location" => $location));
$this->assertTrue($response->isOk());
// create a snapshot of our test index
$snapshotName = "test_snapshot_1";
$response = $this->_snapshot->createSnapshot($repositoryName, $snapshotName, array("indices" => $this->_index->getName()), true);
// ensure that the snapshot was created properly
$this->assertTrue($response->isOk());
$this->assertArrayHasKey("snapshot", $response->getData());
$data = $response->getData();
$this->assertContains($this->_index->getName(), $data["snapshot"]["indices"]);
$this->assertEquals(1, sizeof($data["snapshot"]["indices"]));
// only the specified index should be present
$this->assertEquals($snapshotName, $data["snapshot"]["snapshot"]);
// retrieve data regarding the snapshot
$response = $this->_snapshot->getSnapshot($repositoryName, $snapshotName);
$this->assertContains($this->_index->getName(), $response["indices"]);
// delete our test index
$this->_index->delete();
// restore the index from our snapshot
$response = $this->_snapshot->restoreSnapshot($repositoryName, $snapshotName, array(), true);
$this->assertTrue($response->isOk());
$this->_index->refresh();
$this->_index->optimize();
// ensure that the index has been restored
$count = $this->_index->getType("test")->count();
$this->assertEquals(sizeof($this->_docs), $count);
// delete the snapshot
$response = $this->_snapshot->deleteSnapshot($repositoryName, $snapshotName);
$this->assertTrue($response->isOk());
// ensure that the snapshot has been deleted
$this->setExpectedException('Elastica\\Exception\\NotFoundException');
$this->_snapshot->getSnapshot($repositoryName, $snapshotName);
}
示例3: optimize
public function optimize()
{
// Optimize the index so it'll be more compact for replication. Not required
// but should be helpful.
$this->outputIndented("\tOptimizing...");
try {
// Reset the timeout just in case we lost it somewhere along the line
$this->setConnectionTimeout();
$this->index->optimize(array('max_num_segments' => 5));
$this->output("Done\n");
} catch (HttpException $e) {
if ($e->getMessage() === 'Operation timed out') {
$this->output("Timed out...Continuing any way\n");
// To continue without blowing up we need to reset the connection.
$this->destroyClients();
} else {
throw $e;
}
}
}
示例4: testMatchDoc
public function testMatchDoc()
{
$client = new Client(array('persistent' => false));
$index = $client->getIndex('elastica_test');
$index->create(array('index' => array('number_of_shards' => 1, 'number_of_replicas' => 0)), true);
$percolator = new Percolator($index);
$percolatorName = 'percotest';
$query = new Term(array('name' => 'ruflin'));
$response = $percolator->registerQuery($percolatorName, $query);
$this->assertTrue($response->isOk());
$this->assertFalse($response->hasError());
$doc1 = new Document();
$doc1->set('name', 'ruflin');
$doc2 = new Document();
$doc2->set('name', 'nicolas');
$index = new Index($index->getClient(), '_percolator');
$index->optimize();
$index->refresh();
$matches1 = $percolator->matchDoc($doc1);
$this->assertTrue(in_array($percolatorName, $matches1));
$this->assertEquals(1, count($matches1));
$matches2 = $percolator->matchDoc($doc2);
$this->assertEmpty($matches2);
}