Isswp101\Persimmon\DAL\ElasticsearchDAL::search PHP Метод

    public function search(array $query)
    {
        if (empty($query['body']['query']) && empty($query['body']['filter'])) {
            $query['body']['query'] = ['match_all' => []];
        }
        $params = ['index' => $this->model->getIndex(), 'type' => $this->model->getType(), 'from' => Arr::get($query, 'from', 0), 'size' => Arr::get($query, 'size', 50), 'body' => $query['body']];
        $collection = new ElasticsearchCollection();
        $this->emitter->trigger(DALEvents::BEFORE_SEARCH, $params);
        $response = $this->client->search($params);
        $this->emitter->trigger(DALEvents::AFTER_SEARCH, $response);
        $collection->response($response);
        $from = (int) $params['from'];
        foreach ($response['hits']['hits'] as $hit) {
            $model = $this->model->createInstance();
            $model->_score = $hit['_score'];
            $model->_position = $from++;
            $model->_exist = true;
            $model->fillByResponse($hit);
            $model->fillByInnerHits($hit);
            $collection->put($model->getId(), $model);
        }
        return $collection;
    }