summaryrefslogtreecommitdiff
path: root/inc/infoutils.php
diff options
context:
space:
mode:
authorMichael Hamann <michael@content-space.de>2011-05-02 23:21:38 +0200
committerMichael Hamann <michael@content-space.de>2011-05-02 23:26:07 +0200
commit26f7dbf522bd7473a47791384d73d5721bca8984 (patch)
treeabfc122d6354fcb6a5b646fbfebb10bdddb4444e /inc/infoutils.php
parent42c58e90cbc5b1f19b2ff784225a3e33a8331b4f (diff)
downloadrpg-26f7dbf522bd7473a47791384d73d5721bca8984.tar.gz
rpg-26f7dbf522bd7473a47791384d73d5721bca8984.tar.bz2
Add a test to do=check that should detect search index corruption
With this test it should be possible to detect if the search index has been corrupted by using Rincewind RC or a git version of the weeks before the RC release.
Diffstat (limited to 'inc/infoutils.php')
-rw-r--r--inc/infoutils.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/inc/infoutils.php b/inc/infoutils.php
index 5f406aa3e..f720e957a 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -238,6 +238,37 @@ function check(){
Make sure this directory is properly protected
(See <a href="http://www.dokuwiki.org/security">security</a>)',-1);
}
+
+ // Check for corrupted search index
+ $lengths = idx_listIndexLengths();
+ $index_corrupted = false;
+ foreach ($lengths as $length) {
+ if (count(idx_getIndex('w', $length)) != count(idx_getIndex('i', $length))) {
+ $index_corrupted = true;
+ break;
+ }
+ }
+
+ foreach (idx_getIndex('metadata', '') as $index) {
+ if (count(idx_getIndex($index.'_w', '')) != count(idx_getIndex($index.'_i', ''))) {
+ $index_corrupted = true;
+ break;
+ }
+ }
+
+ if ($index_corrupted)
+ msg('Your search index is corrupted. It might produce wrong results
+ unless you fix it. See
+ <a href="http://www.dokuwiki.org/faq:searchindex">faq:searchindex</a>
+ for ways to rebuild your search index.', -1);
+ elseif (!empty($lengths))
+ msg('Your search index seems to be okay.', 1);
+ else
+ msg('Your search index is empty. See
+ <a href="http://www.dokuwiki.org/faq:searchindex">faq:searchindex</a>
+ for help on how to fix your search index unless you are using an
+ external indexer or your wiki is actually empty.');
+
}
/**