/**
  * @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);
         }
     }
 }
Esempio n. 2
0
 /**
  * @param \Generated\Shared\Transfer\SearchConfigCacheTransfer $searchConfigCacheTransfer
  *
  * @return void
  */
 protected function setDynamicFacets(SearchConfigCacheTransfer $searchConfigCacheTransfer)
 {
     foreach ($searchConfigCacheTransfer->getFacetConfigs() as $facetConfigTransfer) {
         $this->facetConfigBuilder->addFacet($facetConfigTransfer);
     }
 }