/** * Action - optimize * optimize the search index * * Access to the action is possible in the following paths: * - /search/optimize * @return void */ public function optimizeAction() { $result = TRUE; $err_msg = ''; $json = array(); //------------------- try { // Задержка условная sleep(3); $indexFullpath = Default_Model_DbTable_BlogPost::getIndexFullpath(); // Откроем поисковый индекс $index = Zend_Search_Lucene::open($indexFullpath); // Оптимизация индекса $index->optimize(); $message = array('<em>' . $this->Translate("Оптимизация поискового индекса") . '!</em>', $this->Translate("Оптимизация поискового индекса завершилась успешно") . '.'); if ($this->_isAjaxRequest) { $json['class_message'] = 'information'; $json['messages'] = $message; $json['$result'] = $result; } } catch (Exception $ex) { $err_msg = $ex->getMessage(); $message = array('<em>' . $this->Translate("Ошибка оптимизации поискового индекса") . '!</em>', $err_msg); if ($this->_isAjaxRequest) { $json['class_message'] = 'warning'; $json['messages'] = $message; $json['$result'] = $result; } else { $logger = Zend_Registry::get('Zend_Log'); $logger->warn('Error optimizing search index: ' . $ex->getMessage()); $result = FALSE; } } if ($this->_isAjaxRequest) { $this->sendJson($json); } else { $this->view->result = $result; if ($result) { $this->view->class_message = 'information'; } else { $this->view->err_msg = $err_msg; $this->view->class_message = 'warning'; } $this->view->message = $message; $this->_breadcrumbs->addStep($this->Translate('Оптимизация поискового индекса')); } }