/**
  * getElasticQuery
  *
  * @access public
  * @return Query
  */
 public function getElasticQuery()
 {
     if ($this->filterList) {
         $filteredQuery = new ElasticaQuery\Filtered($this->getQuery(), $this->getFilter());
         $query = new Query($filteredQuery);
     } else {
         $query = new Query($this->getQuery());
     }
     $query->setDocumentManager($this->documentManager);
     // manage size / from
     if ($this->firstResults) {
         $query->setFrom($this->firstResults);
     }
     if (isset($this->maxResults)) {
         $query->setSize($this->maxResults);
     }
     if (!empty($this->sortList)) {
         $query->setSort($this->sortList);
     }
     if (!empty($this->aggregationList)) {
         foreach ($this->aggregationList as $aggregation) {
             $query->addAggregation($aggregation);
         }
     }
     return $query;
 }