clientConfig = $clientConfig; $this->searchIndexNameResolver = $searchIndexNameResolver; $this->aggregationBuilder = $aggregationBuilder; $this->scopeResolver = $scopeResolver; } /** * Set initial settings for query * * @param RequestInterface $request * @return array * @since 100.2.2 */ public function initQuery(RequestInterface $request) { $dimension = current($request->getDimensions()); $storeId = $this->scopeResolver->getScope($dimension->getValue())->getId(); $searchQuery = [ 'index' => $this->searchIndexNameResolver->getIndexName($storeId, $request->getIndex()), 'type' => $this->clientConfig->getEntityType(), 'body' => [ 'from' => $request->getFrom(), 'size' => $request->getSize(), 'stored_fields' => ['_id', '_score'], 'query' => [], ], ]; return $searchQuery; } /** * Add aggregations settings to query * * @param RequestInterface $request * @param array $searchQuery * @return array * @since 100.2.2 */ public function initAggregations( RequestInterface $request, array $searchQuery ) { return $this->aggregationBuilder->build($request, $searchQuery); } }