/**
  * 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'] : []));
 }