/** *根据文件的Hash值报告索引成功 * @param string $signature 文件hash值 * @param string $nodeId 迷你搜索ID * @return array */ public function report($signature, $nodeId) { //编制索引成功 $buildSuccess = PluginMiniSearchFile::getInstance()->buildSuccess($signature, $nodeId); if ($buildSuccess) { //为迷你搜索节点服务器增加索引数 PluginMiniSearchNode::getInstance()->newBuildFile($nodeId); //删除索引任务 PluginMiniSearchBuildTask::getInstance()->delete($signature, $nodeId); } return array("success" => true); }
/** * 将文本内容存入数据库 * @param $signature 文件hash值 * @return bool */ public function create($signature) { $item = SearchFile::model()->find("file_signature=:file_signature", array("file_signature" => $signature)); if (!isset($item)) { $item = new SearchFile(); $item['file_signature'] = $signature; $item['node_ids'] = ""; $item->save(); //生成索引编制任务 PluginMiniSearchBuildTask::getInstance()->createTask($item->node_ids, $signature); } return true; }
/** * 场景1:新拉上迷你搜索节点时,系统中已有文件,通过这个指令为新节点编制所有文件的索引 * 使用方式:手动执行 */ public function actionBuildNewNode() { $count = PluginMiniSearchBuildTask::getInstance()->buildNewNode(); echo "本次索引的文件有:" . $count . "个\n"; }