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;
 }