/** * @param \Elastica\Query $query * @param \Spryker\Client\Search\Dependency\Plugin\FacetConfigBuilderInterface $facetConfig * @param \Elastica\Query\AbstractQuery[] $facetFilters * @param array $requestParameters * * @return void */ protected function addFacetAggregationToQuery(Query $query, FacetConfigBuilderInterface $facetConfig, array $facetFilters, array $requestParameters) { $boolQuery = $this->getBoolQuery($query); $activeFilters = $facetConfig->getActiveParamNames($requestParameters); foreach ($facetConfig->getAll() as $facetConfigTransfer) { $facetAggregation = $this->getFactory()->createFacetAggregationFactory()->create($facetConfigTransfer)->createAggregation(); $query->addAggregation($facetAggregation); if (in_array($facetConfigTransfer->getName(), $activeFilters)) { $globalAgg = $this->createGlobalAggregation($facetFilters, $facetConfigTransfer, $boolQuery, $facetAggregation); $query->addAggregation($globalAgg); } } }
/** * @param \Generated\Shared\Transfer\SearchConfigCacheTransfer $searchConfigCacheTransfer * * @return void */ protected function setDynamicFacets(SearchConfigCacheTransfer $searchConfigCacheTransfer) { foreach ($searchConfigCacheTransfer->getFacetConfigs() as $facetConfigTransfer) { $this->facetConfigBuilder->addFacet($facetConfigTransfer); } }