Class yii\elasticsearch\BatchQueryResult
| Inheritance | yii\elasticsearch\BatchQueryResult » yii\base\Object |
|---|---|
| Implements | Iterator, yii\base\Configurable |
| Available since version | 2.0.4 |
| Source Code | https://github.com/yiisoft/yii2-elasticsearch/blob/master/BatchQueryResult.php |
BatchQueryResult represents a batch query from which you can retrieve data in batches.
You usually do not instantiate BatchQueryResult directly. Instead, you obtain it by calling yii\elasticsearch\Query::batch() or yii\elasticsearch\Query::each(). Because BatchQueryResult implements the Iterator interface, you can iterate it to obtain a batch of data in each iteration.
Batch size is determined by the yii\elasticsearch\Query::$limit setting. yii\elasticsearch\Query::$offset setting is ignored. New batches will be obtained until the server runs out of results.
If yii\elasticsearch\Query::$orderBy parameter is not set, batches will be processed using the highly efficient "scan" mode. In this case, yii\elasticsearch\Query::$limit setting determines batch size per shard. See elasticsearch guide for more information.
Example: `php $query = (new Query)->from('user'); foreach ($query->batch() as $i => $users) {
// $users represents the rows in the $i-th batch
} foreach ($query->each() as $user) { } `
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $db | yii\elasticsearch\Connection | The DB connection to be used when performing batch query. | yii\elasticsearch\BatchQueryResult |
| $each | boolean | Whether to return a single row during each iteration. | yii\elasticsearch\BatchQueryResult |
| $query | yii\elasticsearch\Query | The query object associated with this batch query. | yii\elasticsearch\BatchQueryResult |
| $scrollWindow | string | The amount of time to keep the scroll window open (in ElasticSearch [time units](https://www. | yii\elasticsearch\BatchQueryResult |
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __call() | Calls the named method which is not a class method. | yii\base\Object |
| __construct() | Constructor. | yii\base\Object |
| __destruct() | Destructor. | yii\elasticsearch\BatchQueryResult |
| __get() | Returns the value of an object property. | yii\base\Object |
| __isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Object |
| __set() | Sets value of an object property. | yii\base\Object |
| __unset() | Sets an object property to null. | yii\base\Object |
| canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Object |
| canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Object |
| className() | Returns the fully qualified name of this class. | yii\base\Object |
| current() | Returns the current dataset. | yii\elasticsearch\BatchQueryResult |
| hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Object |
| hasProperty() | Returns a value indicating whether a property is defined. | yii\base\Object |
| init() | Initializes the object. | yii\base\Object |
| key() | Returns the index of the current dataset. | yii\elasticsearch\BatchQueryResult |
| next() | Moves the internal pointer to the next dataset. | yii\elasticsearch\BatchQueryResult |
| reset() | Resets the batch query. | yii\elasticsearch\BatchQueryResult |
| rewind() | Resets the iterator to the initial state. | yii\elasticsearch\BatchQueryResult |
| valid() | Returns whether there is a valid dataset at the current position. | yii\elasticsearch\BatchQueryResult |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| fetchData() | Fetches the next batch of data. | yii\elasticsearch\BatchQueryResult |
Property Details
$db public property
The DB connection to be used when performing batch query. If null, the elasticsearch application component will be used.
public yii\elasticsearch\Connection $db = null
$each public property
Whether to return a single row during each iteration. If false, a whole batch of rows will be returned in each iteration.
public boolean $each = false
$query public property
The query object associated with this batch query. Do not modify this property directly unless after reset() is called explicitly.
public yii\elasticsearch\Query $query = null
$scrollWindow public property
The amount of time to keep the scroll window open (in ElasticSearch time units.
public string $scrollWindow = '1m'
Method Details
__destruct() public method
Destructor.
| public void __destruct ( ) |
|---|
current() public method
Returns the current dataset.
This method is required by the interface Iterator.
| public mixed current ( ) | ||
|---|---|---|
| return | mixed |
The current dataset. |
fetchData() protected method
Fetches the next batch of data.
| protected array fetchData ( ) | ||
|---|---|---|
| return | array |
The data fetched |
key() public method
Returns the index of the current dataset.
This method is required by the interface Iterator.
| public integer key ( ) | ||
|---|---|---|
| return | integer |
The index of the current row. |
next() public method
Moves the internal pointer to the next dataset.
This method is required by the interface Iterator.
| public void next ( ) |
|---|
reset() public method
Resets the batch query.
This method will clean up the existing batch query so that a new batch query can be performed.
| public void reset ( ) |
|---|
rewind() public method
Resets the iterator to the initial state.
This method is required by the interface Iterator.
| public void rewind ( ) |
|---|
valid() public method
Returns whether there is a valid dataset at the current position.
This method is required by the interface Iterator.
| public boolean valid ( ) | ||
|---|---|---|
| return | boolean |
Whether there is a valid dataset at the current position. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-elasticsearch-batchqueryresult.html