/** * Gets search result * * @param int $page Page number * @param int $limit Number of items per page * @param string $search The search string. * * @return array */ public function getSearchResult($page = 1, $limit = 10, $search = '') { $searchQuery = $this->searchIndexer->getSimpleSearchQuery($search, $this->getOffset($page, $limit), $limit, $this->getCustomerSearchAliases()); $searchResult = $this->searchIndexer->query($searchQuery); $result = ['result' => [], 'totalCount' => function () use($searchResult) { return $searchResult->getRecordsCount(); }]; if ($searchResult->count() > 0) { $customers = $this->getCustomerListQueryBuilder($searchResult)->getQuery()->getResult(); $result['result'] = $this->mergeResults($searchResult, $customers); } return $result; }
/** * {@inheritdoc} */ public function getListQueryBuilder($limit = 10, $page = 1, $criteria = [], $orderBy = null, $joins = []) { return $this->searchIndexer->getSimpleSearchQuery($criteria['search'], $this->getOffset($page, $limit), $limit, $this->getSearchAliases(isset($criteria['from']) ? $criteria['from'] : [])); }