IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Client helpers
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Client helpers
editThe client comes with helpers to give you a more comfortable experience with some APIs.
Iterators
editSearch response iterator
editThe SearchResponseIterator can be used to iterate page by page in a search
result using
pagination.
An example as follows:
use Elasticsearch\Helper\Iterators\SearchResponseIterator;
$search_params = [
'scroll' => '5m', // period to retain the search context
'index' => '<name of index>', // here the index name
'size' => 100, // 100 results per page
'body' => [
'query' => [
'match_all' => new StdClass // {} in JSON
]
]
];
// $client is Elasticsearch\Client instance
$pages = new SearchResponseIterator($client, $search_params);
// Sample usage of iterating over page results
foreach($pages as $page) {
// do something with hit e.g. copy its data to another index
// e.g. prints the number of document per page (100)
echo count($page['hits']['hits']), PHP_EOL;
}
Search hit iterator
editThe SearchHitIterator can be used to iterate in a SearchResponseIterator
without worrying about
pagination.
An example as follows:
use Elasticsearch\Helper\Iterators\SearchHitIterator;
use Elasticsearch\Helper\Iterators\SearchResponseIterator;
$search_params = [
'scroll' => '5m', // period to retain the search context
'index' => '<name of index>', // here the index name
'size' => 100, // 100 results per page
'body' => [
'query' => [
'match_all' => new StdClass // {} in JSON
]
]
];
// $client is Elasticsearch\Client instance
$pages = new SearchResponseIterator($client, $search_params);
$hits = new SearchHitIterator($pages);
// Sample usage of iterating over hits
foreach($hits as $hit) {
// do something with hit e.g. write to CSV, update a database, etc
// e.g. prints the document id
echo $hit['_id'], PHP_EOL;
}