36 private $queryResultFactory;
51 private $recommendationsFactory;
61 \
Magento\Catalog\Model\Layer\Resolver $layerResolver,
63 \
Magento\Search\Model\QueryResultFactory $queryResultFactory
65 $this->scopeConfig = $scopeConfig;
66 $this->searchLayer = $layerResolver->get();
67 $this->recommendationsFactory = $recommendationsFactory;
68 $this->queryResultFactory = $queryResultFactory;
76 return (
bool)$this->scopeConfig->getValue(
77 self::CONFIG_RESULTS_COUNT_ENABLED,
87 $recommendations = [];
89 if (!$this->isSearchRecommendationsEnabled()) {
93 foreach ($this->getSearchRecommendations(
$query) as $recommendation) {
94 $recommendations[] = $this->queryResultFactory->create(
96 'queryText' => $recommendation[
'query_text'],
97 'resultsCount' => $recommendation[
'num_results'],
101 return $recommendations;
110 $recommendations = [];
112 if ($this->isSearchRecommendationsEnabled()) {
117 $recommendationsResource = $this->recommendationsFactory->create();
118 $recommendations = $recommendationsResource->getRecommendationsByQuery(
121 $this->getSearchRecommendationsCount()
125 return $recommendations;
131 private function isSearchRecommendationsEnabled()
133 return (
bool)$this->scopeConfig->getValue(
134 self::CONFIG_IS_ENABLED,
142 private function getSearchRecommendationsCount()
144 return (
int)$this->scopeConfig->getValue(
145 self::CONFIG_RESULTS_COUNT,
const CONFIG_RESULTS_COUNT_ENABLED
const CONFIG_RESULTS_COUNT
__construct(ScopeConfigInterface $scopeConfig, \Magento\Catalog\Model\Layer\Resolver $layerResolver, \Magento\AdvancedSearch\Model\ResourceModel\RecommendationsFactory $recommendationsFactory, \Magento\Search\Model\QueryResultFactory $queryResultFactory)
getItems(QueryInterface $query)
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]