Beispiel #1
0
 /**
  * Когда все ссылки обработаны
  * @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;
 }
Beispiel #2
0
$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();
        }