protected function getResponse($offset = 0, $itemCountPerPage = 0)
    {
        $id = md5($offset . $itemCountPerPage);
        if (!isset($this->responses[$id])) {
            $query = new \SolrDisMaxQuery();
            $this->filter->filter($this->params, $query, $this->facets);
            $query->setStart($offset);
            $query->setRows($itemCountPerPage);
            try {
                $this->responses[$id] = $this->client->query($query);
            } catch (\Exception $e) {
                throw new ServerException('Failed to process query', $e->getCode(), $e);
            }
        }

        return $this->responses[$id];
    }