lib/Query/Common/CriterionVisitor/LogicalAnd.php
public function visit(Criterion $criterion, CriterionVisitor $subVisitor = null)
    {
        /** @var \eZ\Publish\API\Repository\Values\Content\Query\Criterion\LogicalAnd $criterion */
        if (!isset($criterion->criteria[0])) {
            throw new RuntimeException('Invalid aggregation in LogicalAnd criterion.');
        }

        $subCriteria = array_map(
            function ($value) use ($subVisitor) {
                return $subVisitor->visit($value);
            },
            $criterion->criteria
        );

        if (count($subCriteria) === 1) {
            return reset($subCriteria);
        }

        return '(' . implode(' AND ', $subCriteria) . ')';
    }
public function visit(Criterion $criterion, CriterionVisitor $subVisitor = null)
    {
        /** @var \eZ\Publish\API\Repository\Values\Content\Query\Criterion\LogicalAnd $criterion */
        if (!isset($criterion->criteria[0])) {
            throw new RuntimeException('Invalid aggregation in LogicalAnd criterion.');
        }

        $subCriteria = array_map(
            function ($value) use ($subVisitor) {
                return $subVisitor->visit($value);
            },
            $criterion->criteria
        );

        if (count($subCriteria) === 1) {
            return reset($subCriteria);
        }

        return '(' . implode(' AND ', $subCriteria) . ')';
    }
Map field value to a proper Solr representation.

@param Criterion $criterion
@param CriterionVisitor $subVisitor

@return string