configuration, $this->filterCollection->getKeywordFilters()))->getQuery(); $numberQuery = (new FilterQuery($this->configuration, $this->filterCollection->getNumberFilters()))->getQuery(); $aggsKeywordFiltered = new Aggs('keyword_facet_filtered'); $aggsKeywordFiltered->addAggs( AggsFacetTerms::create( 'all_keyword_facet_filtered', 'keyword_facet' ) ); $aggsNumberFiltered = new Aggs('number_facet_filtered'); $aggsNumberFiltered->addAggs( AggsFacetStats::create( 'all_number_facet_filtered', 'number_facet' ) ); if (false === $keywordQuery->getFilter()->isEmpty()) { foreach ($keywordQuery->getFilter() as $item) { $numberQuery->getFilter()->add($item); } } if (false === $numberQuery->getFilter()->isEmpty()) { foreach ($numberQuery->getFilter() as $item) { $keywordQuery->getFilter()->add($item); } } if (false === $keywordQuery->getFilter()->isEmpty()) { $aggsKeywordFiltered->setQuery($keywordQuery); } else { $aggsKeywordFiltered->setNested((new Nested())->setPath('search_data')); } if (false === $numberQuery->getFilter()->isEmpty()) { $aggsNumberFiltered->setQuery($numberQuery); } else { $aggsNumberFiltered->setNested((new Nested())->setPath('search_data')); } $original->add($aggsKeywordFiltered)->add($aggsNumberFiltered); } }