public function getDocuments() { $documents = array(); $total = $start = 0; $queryString = $this->params['query']; $offset = $this->params['offset']; $limit = $this->params['limit']; $size = 1000; $options = $this->params; $options['limit'] = $size; $options['language'] = $this->params['sourcelanguage']; do { $options['offset'] = $start; $this->resultset = $this->server->search($queryString, $options, $this->hl); list($results, $offsets) = $this->extractMessages($this->resultset, $offset, $limit); $offset = $offsets['start'] + $offsets['left'] - $offsets['total']; $limit = $limit - $offsets['left']; $total = $total + $offsets['total']; $documents = array_merge($documents, $results); $start = $start + $size; } while ($offsets['start'] + $offsets['left'] >= $offsets['total'] && $this->resultset->getTotalHits() > $start); $this->total = $total; return $documents; }