/** * Perform a search and return record collection. * * @param AbstractQuery $query Search query * @param integer $offset Search offset * @param integer $limit Search limit * @param ParamBag $params Search backend parameters * * @return RecordCollectionInterface */ public function search(AbstractQuery $query, $offset, $limit, ParamBag $params = null) { if (null === $params) { $params = new ParamBag(); } $params->mergeWith($this->getQueryBuilder()->build($query)); $response = $this->connector->search($params, $offset, $limit); $this->log('debug', print_r($response, true)); $collection = $this->createRecordCollection($response); $this->injectSourceIdentifier($collection); return $collection; }