/** * Paginate the search. * * @param int|null $perPage * @param string $pageName * @param int|null $page * @return $this */ public function paginate($perPage = null, $pageName = 'page', $page = null) { $perPage = $perPage ?: $this->getModel()->getPerPage(); $page = $page ?: (int) Paginator::resolveCurrentPage($pageName); $this->search->setFrom($perPage * $page); $this->search->setSize($perPage); $results = $this->get(); return new LengthAwarePaginator($results, $perPage, $page, ['path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName]); }
private function searchBlog(Criteria $criteria, Struct\ProductContextInterface $context) { /**@var $condition SearchTermCondition*/ $condition = $criteria->getCondition('search'); $query = $this->createMultiMatchQuery($condition); $search = new Search(); $search->addQuery($query); $search->setFrom(0)->setSize(5); $index = $this->indexFactory->createShopIndex($context->getShop()); $params = ['index' => $index->getName(), 'type' => 'blog', 'body' => $search->toArray()]; $raw = $this->client->search($params); return $this->createBlogStructs($raw); }
/** * Data provider for test testSettingParams() * * @return array */ public function getTestSettingParamsData() { $cases = []; $search = new Search(); $search->setSize(3); $cases['Only size is set'] = [$search, ['size' => 3]]; $search = new Search(); $search->setFrom(4); $cases['Only from is set'] = [$search, ['from' => 4]]; $search = new Search(); $search->setTimeout('2s'); $cases['Only timeout is set'] = [$search, ['timeout' => '2s']]; $search = new Search(); $search->setTerminateAfter(100); $cases['Only terminate_after is set'] = [$search, ['terminate_after' => 100]]; $search = new Search(); $search->setSize(3); $search->setFrom(4); $search->setTimeout('2s'); $search->setTerminateAfter(100); $cases['Multiple parameters are set'] = [$search, ['size' => 3, 'from' => 4, 'timeout' => '2s', 'terminate_after' => 100]]; return $cases; }
/** * Set the query from/offset value. * * @param int $offset * * @return $this */ public function from($offset) { $this->query->setFrom($offset); return $this; }