Commit dc32e54f authored by Steven Wittens's avatar Steven Wittens

Search.module:

- Caching index statistics
- Minor code cleanup
parent 90e67a3a
...@@ -1556,7 +1556,7 @@ function node_update_index() { ...@@ -1556,7 +1556,7 @@ function node_update_index() {
// cannot be indexed (PHP nodes which call drupal_goto, for example). // cannot be indexed (PHP nodes which call drupal_goto, for example).
// In rare cases this can mean a node is only partially indexed, but the // In rare cases this can mean a node is only partially indexed, but the
// chances of this happening are very small. // chances of this happening are very small.
variable_set('node_cron_last', max($last_comment, max($node->changed, $node->created))); variable_set('node_cron_last', max($last_comment, $node->changed, $node->created));
if (node_hook($node, 'view')) { if (node_hook($node, 'view')) {
node_invoke($node, 'view', false, false); node_invoke($node, 'view', false, false);
......
...@@ -1556,7 +1556,7 @@ function node_update_index() { ...@@ -1556,7 +1556,7 @@ function node_update_index() {
// cannot be indexed (PHP nodes which call drupal_goto, for example). // cannot be indexed (PHP nodes which call drupal_goto, for example).
// In rare cases this can mean a node is only partially indexed, but the // In rare cases this can mean a node is only partially indexed, but the
// chances of this happening are very small. // chances of this happening are very small.
variable_set('node_cron_last', max($last_comment, max($node->changed, $node->created))); variable_set('node_cron_last', max($last_comment, $node->changed, $node->created));
if (node_hook($node, 'view')) { if (node_hook($node, 'view')) {
node_invoke($node, 'view', false, false); node_invoke($node, 'view', false, false);
......
...@@ -127,7 +127,7 @@ function search_admin() { ...@@ -127,7 +127,7 @@ function search_admin() {
$output = form_group(t('Indexing settings'), $group); $output = form_group(t('Indexing settings'), $group);
// Collect some stats // Collect some stats
$estimate = db_result(db_query('SELECT COUNT(DISTINCT sid) FROM {search_index}')); $estimate = variable_get('search_indexed', 0);
$nodes = max(1, db_result(db_query('SELECT COUNT(*) FROM {node}'))); $nodes = max(1, db_result(db_query('SELECT COUNT(*) FROM {node}')));
$percentage = ((int)min(100, 100 * $estimate / $nodes)) . '%'; $percentage = ((int)min(100, 100 * $estimate / $nodes)) . '%';
$status = '<p>'. t('Approximately %percentage of the site has been indexed.', array('%percentage' => $percentage)) .'</p>'; $status = '<p>'. t('Approximately %percentage of the site has been indexed.', array('%percentage' => $percentage)) .'</p>';
...@@ -200,6 +200,10 @@ function search_cron() { ...@@ -200,6 +200,10 @@ function search_cron() {
while ($word = db_fetch_object($result)) { while ($word = db_fetch_object($result)) {
db_query("DELETE FROM {search_total} WHERE word = '%s'", $word->realword); db_query("DELETE FROM {search_total} WHERE word = '%s'", $word->realword);
} }
// Count indexed items (for administration screen)
$indexed = db_result(db_query('SELECT COUNT(DISTINCT sid) FROM {search_index}'));
variable_set('search_indexed', $indexed);
} }
/** /**
......
...@@ -127,7 +127,7 @@ function search_admin() { ...@@ -127,7 +127,7 @@ function search_admin() {
$output = form_group(t('Indexing settings'), $group); $output = form_group(t('Indexing settings'), $group);
// Collect some stats // Collect some stats
$estimate = db_result(db_query('SELECT COUNT(DISTINCT sid) FROM {search_index}')); $estimate = variable_get('search_indexed', 0);
$nodes = max(1, db_result(db_query('SELECT COUNT(*) FROM {node}'))); $nodes = max(1, db_result(db_query('SELECT COUNT(*) FROM {node}')));
$percentage = ((int)min(100, 100 * $estimate / $nodes)) . '%'; $percentage = ((int)min(100, 100 * $estimate / $nodes)) . '%';
$status = '<p>'. t('Approximately %percentage of the site has been indexed.', array('%percentage' => $percentage)) .'</p>'; $status = '<p>'. t('Approximately %percentage of the site has been indexed.', array('%percentage' => $percentage)) .'</p>';
...@@ -200,6 +200,10 @@ function search_cron() { ...@@ -200,6 +200,10 @@ function search_cron() {
while ($word = db_fetch_object($result)) { while ($word = db_fetch_object($result)) {
db_query("DELETE FROM {search_total} WHERE word = '%s'", $word->realword); db_query("DELETE FROM {search_total} WHERE word = '%s'", $word->realword);
} }
// Count indexed items (for administration screen)
$indexed = db_result(db_query('SELECT COUNT(DISTINCT sid) FROM {search_index}'));
variable_set('search_indexed', $indexed);
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment