14 use \Magento\Elasticsearch\SearchAdapter\ResponseFactory;
15 use Psr\Log\LoggerInterface;
49 private $queryContainerFactory;
56 private static $emptyRawResponse = [
90 \
Magento\Elasticsearch\SearchAdapter\QueryContainerFactory $queryContainerFactory,
91 LoggerInterface $logger =
null 97 $this->queryContainerFactory = $queryContainerFactory;
99 ->get(LoggerInterface::class);
110 $client = $this->connectionManager->getConnection();
116 $rawResponse = $client->query(
$query);
117 }
catch (\Exception $e) {
118 $this->logger->critical($e);
120 $rawResponse = self::$emptyRawResponse;
123 $rawDocuments = isset($rawResponse[
'hits'][
'hits']) ? $rawResponse[
'hits'][
'hits'] : [];
124 $queryResponse = $this->responseFactory->create(
126 'documents' => $rawDocuments,
130 return $queryResponse;
query(RequestInterface $request)
__construct(ConnectionManager $connectionManager, Mapper $mapper, ResponseFactory $responseFactory, AggregationBuilder $aggregationBuilder, \Magento\Elasticsearch\SearchAdapter\QueryContainerFactory $queryContainerFactory, LoggerInterface $logger=null)