/**
  * Creating a Zend\Paginator\Paginator from Elastica\ResultSet.
  * This paginator can be passed directly zf-hal or whereever you want.
  * This method use ElasticsearchAdapter as ArrayAdapter
  *
  * @param  ResultSet    $resultSet      Elastica result data
  * @return Paginator    Created paginator from resultset with ElasticsearchAdapter.
  */
 public function buildPaginator(Resultset $resultSet)
 {
     $itemsPerPage = empty($resultSet->getQuery()->getParam('size')) ? $this->getDefaultPageSize() : $resultSet->getQuery()->getParam('size');
     $currentPage = (int) ceil($resultSet->getQuery()->getParam('size') / $itemsPerPage) + 1;
     $results = [];
     foreach ($resultSet->getResults() as $result) {
         $data = $result->getData();
         $data['_score'] = $result->getScore();
         $results[] = $data;
     }
     $adapter = new ElasticsearchAdapter($results, $resultSet->getTotalHits());
     $adapter->setMeta('aggs', $resultSet->getAggregations());
     $paginator = new Paginator($adapter);
     $paginator->setCurrentPageNumber($currentPage);
     $paginator->setItemCountPerPage($itemsPerPage);
     return $paginator;
 }