/** * {@inheritdoc} */ public function preProcessSearch(Search $search, Search $relatedSearch, FilterState $state = null) { $name = $state ? $state->getName() : $this->getField(); $agg = new TermsAggregation($name); $agg->setField($this->getField()); $search->addAggregation($agg); }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $search->addFilter(new TermsQuery('category.id', [$state->getValue()->getId()])); } }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $search->addPostFilter(new TermsQuery($this->getField(), $state->getValue(), ['execution' => 'and']), 'must_not'); } }