aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/search_fill.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2009-10-04 18:14:59 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2009-10-04 18:14:59 +0000
commit2e17e448deed073f8614bb555a8ef20c57291c2a (patch)
tree533007e53d3584d0887b0f639d0e673b1e15ea7a /phpBB/develop/search_fill.php
parentbf8ac19eaa8d74f9dfd6d597190f5664e7339382 (diff)
downloadforums-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.php129
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>