Skip to content
Snippets Groups Projects
Commit a87b1905 authored by Mantas Urnieža's avatar Mantas Urnieža
Browse files

Adding timout and terminate_after parameters to Search object.

parent 913be5ff
No related branches found
No related tags found
No related merge requests found
...@@ -43,6 +43,16 @@ class Search ...@@ -43,6 +43,16 @@ class Search
*/ */
private $from; private $from;
/**
* @var string
*/
private $timeout;
/**
* @var int
*/
private $terminateAfter;
/** /**
* @var string|null * @var string|null
*/ */
...@@ -400,6 +410,34 @@ class Search ...@@ -400,6 +410,34 @@ class Search
return $this; return $this;
} }
/**
* Sets timeout for query execution.
*
* @param $timeout
*
* @return $this
*/
public function setTimeout($timeout)
{
$this->timeout = $timeout;
return $this;
}
/**
* Sets maximum number of documents per shard.
*
* @param $terminateAfter
*
* @return $this
*/
public function setTerminateAfter($terminateAfter)
{
$this->terminateAfter = $terminateAfter;
return $this;
}
/** /**
* Returns results offset value. * Returns results offset value.
* *
...@@ -674,6 +712,8 @@ class Search ...@@ -674,6 +712,8 @@ class Search
'stats' => 'stats', 'stats' => 'stats',
'minScore' => 'min_score', 'minScore' => 'min_score',
'source' => '_source', 'source' => '_source',
'timeout' => 'timeout',
'terminateAfter' => 'terminate_after',
]; ];
foreach ($params as $field => $param) { foreach ($params as $field => $param) {
......
...@@ -25,4 +25,83 @@ class SearchTest extends \PHPUnit_Framework_TestCase ...@@ -25,4 +25,83 @@ class SearchTest extends \PHPUnit_Framework_TestCase
{ {
$this->assertInstanceOf('ONGR\ElasticsearchDSL\Search', new Search()); $this->assertInstanceOf('ONGR\ElasticsearchDSL\Search', new Search());
} }
/**
* Data provider for test testSettingParams()
*
* @return array
*/
public function getTestSettingParamsData()
{
$cases = [];
$search = new Search();
$search->setSize(3);
$cases['Only size is set'] = [
$search,
[
'size' => 3,
],
];
$search = new Search();
$search->setFrom(4);
$cases['Only from is set'] = [
$search,
[
'from' => 4,
],
];
$search = new Search();
$search->setTimeout('2s');
$cases['Only timeout is set'] = [
$search,
[
'timeout' => '2s',
],
];
$search = new Search();
$search->setTerminateAfter(100);
$cases['Only terminate_after is set'] = [
$search,
[
'terminate_after' => 100,
],
];
$search = new Search();
$search->setSize(3);
$search->setFrom(4);
$search->setTimeout('2s');
$search->setTerminateAfter(100);
$cases['Multiple parameters are set'] = [
$search,
[
'size' => 3,
'from' => 4,
'timeout' => '2s',
'terminate_after' => 100,
],
];
return $cases;
}
/**
* This test checks if parameters are correctly set into Search object.
*
* @dataProvider getTestSettingParamsData()
*
* @param Search $search
* @param array $expected
*/
public function testSettingParams($search, $expected)
{
$this->assertEquals(
$expected,
$search->toArray()
);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment