/**
* Map field value to a proper Elasticsearch query representation
*
* @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion
* @param \eZ\Publish\Core\Search\Elasticsearch\Content\CriterionVisitorDispatcher $dispatcher
* @param array $fieldFilters
*
* @return mixed
*/
public function visitQuery(Criterion $criterion, Dispatcher $dispatcher, array $fieldFilters)
{
/** @var $criterion \eZ\Publish\API\Repository\Values\Content\Query\Criterion\LogicalOperator */
return array("bool" => array("should" => array_map(function ($value) use($dispatcher, $fieldFilters) {
return $dispatcher->dispatch($value, Dispatcher::CONTEXT_FILTER, $fieldFilters);
}, $criterion->criteria), "minimum_should_match" => 1));
}