diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:14:59 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:14:59 +0000 |
commit | 2e17e448deed073f8614bb555a8ef20c57291c2a (patch) | |
tree | 533007e53d3584d0887b0f639d0e673b1e15ea7a /phpBB/develop/search_fill.php | |
parent | bf8ac19eaa8d74f9dfd6d597190f5664e7339382 (diff) | |
download | forums-2e17e448deed073f8614bb555a8ef20c57291c2a.tar forums-2e17e448deed073f8614bb555a8ef20c57291c2a.tar.gz forums-2e17e448deed073f8614bb555a8ef20c57291c2a.tar.bz2 forums-2e17e448deed073f8614bb555a8ef20c57291c2a.tar.xz forums-2e17e448deed073f8614bb555a8ef20c57291c2a.zip |
Copy 3.0.x branch to trunk
git-svn-id: file:///svn/phpbb/trunk@10211 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/develop/search_fill.php')
-rw-r--r-- | phpBB/develop/search_fill.php | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/phpBB/develop/search_fill.php b/phpBB/develop/search_fill.php new file mode 100644 index 0000000000..371c8c74cc --- /dev/null +++ b/phpBB/develop/search_fill.php @@ -0,0 +1,129 @@ +<?php + +// +// Security message: +// +// This script is potentially dangerous. +// Remove or comment the next line (die(".... ) to enable this script. +// Do NOT FORGET to either remove this script or disable it after you have used it. +// + +// +// Security message: +// +// This script is potentially dangerous. +// Remove or comment the next line (die(".... ) to enable this script. +// Do NOT FORGET to either remove this script or disable it after you have used it. +// +die("Please read the first lines of this script for instructions on how to enable it"); + +// +// Do not change anything below this line. +// +set_time_limit(0); + +define('IN_PHPBB', true); +$phpbb_root_path = '../'; +$phpEx = substr(strrchr(__FILE__, '.'), 1); +include($phpbb_root_path . 'common.'.$phpEx); + +// Start session management +$user->session_begin(); +$auth->acl($user->data); +$user->setup(); + +$search_type = $config['search_type']; + +if (!file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx)) +{ + trigger_error('NO_SUCH_SEARCH_MODULE'); +} + +require($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx); + +$error = false; +$search = new $search_type($error); + +if ($error) +{ + trigger_error($error); +} + +print "<html>\n<body>\n"; + +// +// Fetch a batch of posts_text entries +// +$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id + FROM ". POSTS_TABLE; +if ( !($result = $db->sql_query($sql)) ) +{ + $error = $db->sql_error(); + die("Couldn't get maximum post ID :: " . $sql . " :: " . $error['message']); +} + +$max_post_id = $db->sql_fetchrow($result); + +$totalposts = $max_post_id['total']; +$max_post_id = $max_post_id['max_post_id']; + +$postcounter = (!isset($HTTP_GET_VARS['batchstart'])) ? 0 : $HTTP_GET_VARS['batchstart']; + +$batchsize = 200; // Process this many posts per loop +$batchcount = 0; +for(;$postcounter <= $max_post_id; $postcounter += $batchsize) +{ + $batchstart = $postcounter + 1; + $batchend = $postcounter + $batchsize; + $batchcount++; + + $sql = "SELECT * + FROM " . POSTS_TABLE . " + WHERE post_id + BETWEEN $batchstart + AND $batchend"; + if( !($result = $db->sql_query($sql)) ) + { + $error = $db->sql_error(); + die("Couldn't get post_text :: " . $sql . " :: " . $error['message']); + } + + $rowset = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $post_rows = sizeof($rowset); + + if( $post_rows ) + { + + // $sql = "LOCK TABLES ".POST_TEXT_TABLE." WRITE"; + // $result = $db->sql_query($sql); + print "\n<p>\n<a href='{$_SERVER['PHP_SELF']}?batchstart=$batchstart'>Restart from posting $batchstart</a><br>\n"; + + // For every post in the batch: + for($post_nr = 0; $post_nr < $post_rows; $post_nr++ ) + { + print "."; + flush(); + + $post_id = $rowset[$post_nr]['post_id']; + + $search->index('post', $rowset[$post_nr]['post_id'], $rowset[$post_nr]['post_text'], $rowset[$post_nr]['post_subject'], $rowset[$post_nr]['poster_id']); + } + // $sql = "UNLOCK TABLES"; + // $result = $db->sql_query($sql); + + } +} + +print "<br>Removing common words (words that appear in more than 50% of the posts)<br>\n"; +flush(); +$search->tidy(); +print "Removed words that where too common.<br>"; + +echo "<br>Done"; + +?> + +</body> +</html> |