/**
  * @throws \Exception
  */
 public function init()
 {
     parent::init();
     if (!Configuration::get('frontend.enabled')) {
         return FALSE;
     }
     try {
         \Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
         $this->frontendIndex = \Zend_Search_Lucene::open(Plugin::getFrontendSearchIndex());
         $this->categories = Configuration::get('frontend.categories');
         //set search term query
         $searchQuery = $this->cleanRequestString($this->getParam('q'));
         if (!empty($searchQuery)) {
             $this->query = Plugin::cleanTerm($searchQuery);
             $this->untouchedQuery = $this->query;
         }
         //set Language
         if (Configuration::get('frontend.ignoreLanguage') !== TRUE) {
             $this->searchLanguage = $this->getParam('language');
             if (empty($this->searchLanguage)) {
                 try {
                     $this->searchLanguage = \Zend_Registry::get('Zend_Locale');
                 } catch (Exception $e) {
                     $this->searchLanguage = 'en';
                 }
             }
         } else {
             $this->searchLanguage = NULL;
         }
         //Set Category
         $queryCategory = $this->cleanRequestString($this->getParam('category'));
         if (!empty($queryCategory)) {
             $this->category = $queryCategory;
         }
         //Set Country
         if (Configuration::get('frontend.ignoreCountry') !== TRUE) {
             $this->searchCountry = $this->getParam('country');
             if ($this->searchCountry == 'global') {
                 $this->searchCountry = 'international';
             } else {
                 if (empty($this->searchCountry)) {
                     $this->searchCountry = 'international';
                 }
             }
         } else {
             $this->searchCountry = NULL;
         }
         //Set Restrictions (Auth)
         if (Configuration::get('frontend.ignoreRestriction') === FALSE) {
             $this->searchRestriction = TRUE;
         }
         //Set Fuzzy Search (Auth)
         $fuzzySearchRequest = $this->getParam('fuzzy');
         if (Configuration::get('frontend.fuzzySearch') == TRUE || !empty($fuzzySearchRequest) && $fuzzySearchRequest !== 'false') {
             $this->fuzzySearch = TRUE;
         }
         //Set own Host Only
         if (Configuration::get('frontend.ownHostOnly') == TRUE) {
             $this->ownHostOnly = TRUE;
         }
         //Set Entries per Page
         $this->perPage = Configuration::get('frontend.view.maxPerPage');
         $perPage = $this->getParam('perPage');
         if (!empty($perPage)) {
             $this->perPage = (int) $perPage;
         }
         //Set max Suggestions
         $this->maxSuggestions = Configuration::get('frontend.view.maxSuggestions');
         //Set Current Page
         $currentPage = $this->getParam('page');
         if (!empty($currentPage)) {
             $this->currentPage = (int) $currentPage;
         }
     } catch (\Exception $e) {
         throw new \Exception('could not open index');
     }
 }