eZ\Publish\Core\Search\Elasticsearch\Content\CriterionVisitorDispatcher::dispatch PHP Метод

dispatch() публичный Метод

Map field value to a proper Elasticsearch representation.
public dispatch ( eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, string $context, array $languageFilter = [] ) : string
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$context string
$languageFilter array
Результат string
    public function dispatch(Criterion $criterion, $context, array $languageFilter = array())
    {
        if (!isset($this->contextMethodMap[$context])) {
            throw new RuntimeException("Given context '{$context}' is not recognized");
        }
        foreach ($this->visitors as $visitor) {
            if ($visitor->canVisit($criterion)) {
                return $visitor->{$this->contextMethodMap[$context]}($criterion, $this, $languageFilter);
            }
        }
        throw new NotImplementedException('No visitor available for: ' . get_class($criterion) . ' with operator ' . $criterion->operator);
    }

Usage Example

Пример #1
0
 /**
  * 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));
 }
All Usage Examples Of eZ\Publish\Core\Search\Elasticsearch\Content\CriterionVisitorDispatcher::dispatch
CriterionVisitorDispatcher