Skip to content

Commit a37dada

Browse files
author
Oleksandr Iegorov
committed
ACP2E-68: Search terms queries via graphQL are not populated in popular search terms in admin
1 parent 6df210e commit a37dada

File tree

1 file changed

+21
-1
lines changed
  • app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query

1 file changed

+21
-1
lines changed

app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use Magento\GraphQl\Model\Query\ContextInterface;
2020
use Magento\Search\Api\SearchInterface;
2121
use Magento\Search\Model\Search\PageSizeProvider;
22+
use Magento\Search\Model\QueryFactory;
2223

2324
/**
2425
* Full text search for catalog using given search criteria.
@@ -60,6 +61,11 @@ class Search implements ProductQueryInterface
6061
*/
6162
private $searchCriteriaBuilder;
6263

64+
/**
65+
* @var QueryFactory
66+
*/
67+
private $queryFactory;
68+
6369
/**
6470
* @param SearchInterface $search
6571
* @param SearchResultFactory $searchResultFactory
@@ -68,6 +74,7 @@ class Search implements ProductQueryInterface
6874
* @param ProductSearch $productsProvider
6975
* @param SearchCriteriaBuilder $searchCriteriaBuilder
7076
* @param ArgumentsProcessorInterface|null $argsSelection
77+
* @param QueryFactory|null $queryFactory
7178
*/
7279
public function __construct(
7380
SearchInterface $search,
@@ -76,7 +83,8 @@ public function __construct(
7683
FieldSelection $fieldSelection,
7784
ProductSearch $productsProvider,
7885
SearchCriteriaBuilder $searchCriteriaBuilder,
79-
ArgumentsProcessorInterface $argsSelection = null
86+
ArgumentsProcessorInterface $argsSelection = null,
87+
QueryFactory $queryFactory = null
8088
) {
8189
$this->search = $search;
8290
$this->searchResultFactory = $searchResultFactory;
@@ -86,6 +94,8 @@ public function __construct(
8694
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
8795
$this->argsSelection = $argsSelection ?: ObjectManager::getInstance()
8896
->get(ArgumentsProcessorInterface::class);
97+
$this->queryFactory = $queryFactory ?: ObjectManager::getInstance()
98+
->get(QueryFactory::class);
8999
}
90100

91101
/**
@@ -124,6 +134,16 @@ public function getResult(
124134

125135
$totalPages = $realPageSize ? ((int)ceil($searchResults->getTotalCount() / $realPageSize)) : 0;
126136

137+
// add query statistics data
138+
if (!empty($args['search'])) {
139+
$query = $this->queryFactory->get();
140+
$query->setQueryText($args['search']);
141+
$store = $context->getExtensionAttributes()->getStore();
142+
$query->setStoreId($store->getId());
143+
$query->saveIncrementalPopularity();
144+
$query->saveNumResults($searchResults->getTotalCount());
145+
}
146+
127147
$productArray = [];
128148
/** @var \Magento\Catalog\Model\Product $product */
129149
foreach ($searchResults->getItems() as $product) {

0 commit comments

Comments
 (0)