public function findByQuery(QueryInterface $query) { $collection = $this->getCollection($query->getIndex(), $query->getFilters(), $query->getQueries(), $query->getFieldWeights(), $query->getLimit(), $query->getOffSet(), $query->getCountableAttributes()); $paginator = new Paginator(); if ($query->getPaginator()) { $page = $query->getPaginator()->getCurrentPageNumber(); } else { $page = 1; } $paginator->paginateResult($collection, $page); $collection->setPaginator($paginator); return $collection; }