eZ\Publish\Core\Search\Elasticsearch\Content\CriterionVisitor\UserMetadataIn::visitFilter PHP Method

visitFilter() public method

Map field value to a proper Elasticsearch filter representation.
public visitFilter ( eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, CriterionVisitorDispatcher $dispatcher, array $languageFilter ) : mixed
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$dispatcher eZ\Publish\Core\Search\Elasticsearch\Content\CriterionVisitorDispatcher
$languageFilter array
return mixed
    public function visitFilter(Criterion $criterion, Dispatcher $dispatcher, array $languageFilter)
    {
        switch ($criterion->target) {
            case Criterion\UserMetadata::MODIFIER:
                $fieldName = 'creator_id';
                break;
            case Criterion\UserMetadata::OWNER:
                $fieldName = 'owner_id';
                break;
            case Criterion\UserMetadata::GROUP:
                $fieldName = 'owner_user_group_mid';
                break;
            default:
                throw new NotImplementedException('No visitor available for: ' . get_class($criterion) . " with target '{$criterion->target}'");
        }
        if (count($criterion->value) > 1) {
            $filter = array('terms' => array($fieldName => $criterion->value));
        } else {
            $filter = array('term' => array($fieldName => $criterion->value[0]));
        }
        return $filter;
    }