/** * @param Criteria $criteria */ private function addTasteQueryFilter(Criteria $criteria) { $requiredTaste = $criteria->getRequiredTaste(); $optionalTaste = $criteria->getOptionalTaste(); if ($requiredTaste->isDefined()) { $this->parameters['body']['query']['filtered']['filter']['and'][] = ['terms' => ['description.taste' => $this->buildTasteArray($requiredTaste)]]; } if ($optionalTaste->isDefined()) { foreach ($this->buildTasteArray($optionalTaste) as $taste) { $this->parameters['body']['query']['filtered']['filter']['or'][] = ['terms' => ['description.taste' => [$taste]]]; } } }