/** * Когда все ссылки обработаны * @param bool $is_cancelled * @return integer nc_search_indexer::TASK_FINISHED */ public function finalize($is_cancelled = false) { $task = $this->task; if ($is_cancelled) { $this->query_db("UPDATE `Search_Document` SET `ToDelete` = 0 WHERE `ToDelete` = 1"); } else { $absent_document_count = $this->remove_absent_documents(); $task->set('total_deleted', $absent_document_count); } // we're done with the index $this->index->commit(); $this->index->optimize(); // save broken links $this->save_broken_links(); // save indexing session statistics (rule) $rule = $task->get_rule(); if ($rule) { $rule->set('last_start_time', $task->get('start_time'))->set('last_finish_time', time())->set('last_result', array('processed' => $task->get('total_processed'), 'checked' => $task->get('total_checked'), 'not_found' => $task->get('total_not_found'), 'deleted' => $task->get('total_deleted')))->save(); // schedule next run } // remove the task $task->delete(); // также очистим историю заодно nc_search::purge_history(); nc_search::purge_log(); // отчитаемся о проделанной работе nc_search::log(nc_search::LOG_INDEXING_BEGIN_END, "Ended indexing area '{$this->get_area()}'"); return self::TASK_FINISHED; }
$stopwords_filter = new nc_search_extension_rule(); $stopwords_filter->load_where('extension_class', 'nc_search_language_filter_stopwords'); $shortwords_filter = new nc_search_extension_rule(); $shortwords_filter->load_where('extension_class', 'nc_search_language_filter_minlength'); // ОБРАБОТАТЬ ВХОДЯЩИЕ ДАННЫЕ // (1) purge[now] + purge[interval], [interval_value], [interval_type] // (2) s[] $new_settings = $this->get_input('s', array()); $purge = $this->get_input('purge', array()); if (isset($purge["now"]) && $purge["now"]) { if ($purge["interval"] == -1) { // грохнуть всё $purge["interval_value"] = 1; $purge["interval_type"] = "second"; } nc_search::purge_history($purge["interval_value"], $purge["interval_type"]); nc_print_status(NETCAT_MODULE_SEARCH_ADMIN_SETTING_QUERY_LOG_PURGED, 'ok'); } else { if ($new_settings) { foreach ($new_settings as $k => $v) { nc_search::save_setting($k, $v); } // enable/disable extensions depending on the settings $remove_stopwords = nc_search::get_setting('RemoveStopwords'); if ($stopwords_filter && $stopwords_filter->get('enabled') != $remove_stopwords) { $stopwords_filter->set('enabled', $remove_stopwords)->save(); } $remove_shortwords = nc_search::get_setting('MinWordLength') > 1; if ($shortwords_filter && $shortwords_filter->get('enabled') != $remove_shortwords) { $shortwords_filter->set('enabled', $remove_shortwords)->save(); }