Isswp101\Persimmon\ElasticsearchModel::map PHP Метод

map() публичный статический Метод

Apply the callback to the documents of the given query.
public static map ( QueryBuilder | array $query = [], callable $callback = null, integer $limit ) : integer
$query Isswp101\Persimmon\QueryBuilder\QueryBuilder | array
$callback callable
$limit integer
Результат integer hits.total
    public static function map($query = [], callable $callback = null, $limit = -1)
    {
        if ($query instanceof QueryBuilder) {
            $query = $query->build();
        }
        $query['from'] = Arr::get($query, 'from', 0);
        $query['size'] = Arr::get($query, 'size', 50);
        $i = 0;
        $models = static::search($query);
        $total = $models->getTotal();
        while ($models) {
            foreach ($models as $model) {
                if ($callback) {
                    $callback($model);
                }
                $i++;
            }
            $query['from'] += $query['size'];
            if ($i >= $total || $limit > 0 && $i >= $limit) {
                break;
            }
            $models = static::search($query);
        }
        return $total;
    }