vendor/ruflin/elastica/lib/Elastica/ResultSet/DefaultBuilder.php line 22

Open in your IDE?
  1. <?php
  2. namespace Elastica\ResultSet;
  3. use Elastica\Query;
  4. use Elastica\Response;
  5. use Elastica\Result;
  6. use Elastica\ResultSet;
  7. class DefaultBuilder implements BuilderInterface
  8. {
  9.     /**
  10.      * Builds a ResultSet for a given Response.
  11.      *
  12.      * @param Response $response
  13.      * @param Query    $query
  14.      *
  15.      * @return ResultSet
  16.      */
  17.     public function buildResultSet(Response $responseQuery $query)
  18.     {
  19.         $results $this->buildResults($response);
  20.         $resultSet = new ResultSet($response$query$results);
  21.         return $resultSet;
  22.     }
  23.     /**
  24.      * Builds individual result objects.
  25.      *
  26.      * @param Response $response
  27.      *
  28.      * @return Result[]
  29.      */
  30.     private function buildResults(Response $response)
  31.     {
  32.         $data $response->getData();
  33.         $results = [];
  34.         if (!isset($data['hits']['hits'])) {
  35.             return $results;
  36.         }
  37.         foreach ($data['hits']['hits'] as $hit) {
  38.             $results[] = new Result($hit);
  39.         }
  40.         return $results;
  41.     }
  42. }