Esempio n. 1
0
 /**
  * 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]);
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 /**
  * 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;
 }
Esempio n. 4
0
 /**
  * Set the query from/offset value.
  *
  * @param int $offset
  *
  * @return $this
  */
 public function from($offset)
 {
     $this->query->setFrom($offset);
     return $this;
 }