Exemple #1
0
 /**
  * Запуск переиндексации указанной области
  */
 public static function index_area($area_string, $runner_type = nc_search::INDEXING_NC_CRON)
 {
     $area = new nc_search_area($area_string);
     // task: состояние сессии переиндексации
     $task = new nc_search_indexer_task(array('area' => $area, 'rule_id' => $area->get('rule_id'), 'runner_type' => $runner_type));
     $task->save();
     // runner: стратегия
     $runner_classes = array(nc_search::INDEXING_NC_CRON => 'nc_search_indexer_runner_console', nc_search::INDEXING_CONSOLE => 'nc_search_indexer_runner_console', nc_search::INDEXING_BROWSER => 'nc_search_indexer_runner_web', nc_search::INDEXING_CONSOLE_BATCH => 'nc_search_indexer_runner_batch');
     if (!isset($runner_classes[$runner_type])) {
         throw new nc_search_exception("nc_search_indexer::index_area(): wrong runner type '{$runner_type}'");
     }
     $runner_class = $runner_classes[$runner_type];
     $indexer = new nc_search_indexer();
     return $indexer->start($task, new $runner_class());
 }