public function runQuery(ProductSearchContext $context, ProductSearchQuery $query)
 {
     $products = [];
     $count = 0;
     if ($string = $query->getSearchString()) {
         $result = Search::find($context->getIdLang(), Tools::replaceAccentedChars(urldecode($string)), $query->getPage(), $query->getResultsPerPage(), $query->getSortOrder()->toLegacyOrderBy(), $query->getSortOrder()->toLegacyOrderWay(), false, false, null);
         $products = $result['result'];
         $count = $result['total'];
     } elseif ($tag = $query->getSearchTag()) {
         $products = Search::searchTag($context->getIdLang(), urldecode($tag), false, $query->getPage(), $query->getResultsPerPage(), $query->getSortOrder()->toLegacyOrderBy(true), $query->getSortOrder()->toLegacyOrderWay(), false, null);
         $count = Search::searchTag($context->getIdLang(), urldecode($tag), true, $query->getPage(), $query->getResultsPerPage(), $query->getSortOrder()->toLegacyOrderBy(true), $query->getSortOrder()->toLegacyOrderWay(), false, null);
     }
     $result = new ProductSearchResult();
     $result->setProducts($products)->setTotalProductsCount($count);
     $result->setAvailableSortOrders($this->sortOrderFactory->getDefaultSortOrders());
     return $result;
 }