public function execute($request)
 {
     if (!isset($request->limit)) {
         $request->limit = sfConfig::get('app_hits_per_page');
     }
     if (isset($request->subquery)) {
         try {
             // Parse query string
             $query = QubitSearch::getInstance()->parse($request->subquery);
         } catch (Exception $e) {
             $this->error = $e->getMessage();
             return;
         }
     } else {
         $this->redirect(array('module' => 'actor', 'action' => 'browse'));
     }
     $query->addSubquery(QubitSearch::getInstance()->addTerm('QubitActor', 'className'), true);
     $query = QubitAcl::searchFilterByResource($query, QubitActor::getById(QubitActor::ROOT_ID));
     $this->pager = new QubitArrayPager();
     try {
         $this->pager->hits = QubitSearch::getInstance()->getEngine()->getIndex()->find($query);
     } catch (Exception $e) {
         $this->error = $e->getMessage();
         return;
     }
     $this->pager->setMaxPerPage($request->limit);
     $this->pager->setPage($request->page);
     $ids = array();
     foreach ($this->pager->getResults() as $hit) {
         $ids[] = $hit->getDocument()->id;
     }
     $criteria = new Criteria();
     $criteria->add(QubitActor::ID, $ids, Criteria::IN);
     $this->actors = QubitActor::get($criteria);
 }