summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorTom N Harris <tnharris@whoopdedo.org>2010-12-29 03:50:05 -0500
committerTom N Harris <tnharris@whoopdedo.org>2010-12-29 03:50:05 -0500
commit9b41be2446ea725a496f34b28ac4db84bece57c9 (patch)
treebb002063560d6132c6cda8d85cd1d1d089084f27 /bin
parent00803e562833be06ab5a869541581314b9b84d58 (diff)
downloadrpg-9b41be2446ea725a496f34b28ac4db84bece57c9.tar.gz
rpg-9b41be2446ea725a496f34b28ac4db84bece57c9.tar.bz2
Indexer v3 Rewrite part two, update uses of indexer
Diffstat (limited to 'bin')
-rwxr-xr-xbin/indexer.php39
1 files changed, 33 insertions, 6 deletions
diff --git a/bin/indexer.php b/bin/indexer.php
index 497c6146a..0d523df6e 100755
--- a/bin/indexer.php
+++ b/bin/indexer.php
@@ -24,6 +24,7 @@ if ( $OPTS->isError() ) {
}
$CLEAR = false;
$QUIET = false;
+$INDEXER = null;
foreach ($OPTS->options as $key => $val) {
switch ($key) {
case 'h':
@@ -66,6 +67,9 @@ function _usage() {
function _update(){
global $conf;
+ global $INDEXER;
+
+ $INDEXER = idx_get_indexer();
$data = array();
_quietecho("Searching pages... ");
@@ -78,25 +82,47 @@ function _update(){
}
function _index($id){
+ global $INDEXER;
global $CLEAR;
+ global $QUIET;
// if not cleared only update changed and new files
if(!$CLEAR){
$idxtag = metaFN($id,'.indexed');
if(@file_exists($idxtag)){
if(io_readFile($idxtag) == idx_get_version()){
- $last = @filemtime(metaFN($id,'.indexed'));
+ $last = @filemtime($idxtag);
if($last > @filemtime(wikiFN($id))) return;
}
}
}
- _lock();
_quietecho("$id... ");
- idx_addPage($id);
- io_saveFile(metaFN($id,'.indexed'), idx_get_version());
+ $body = '';
+ $data = array($id, $body);
+ $evt = new Doku_Event('INDEXER_PAGE_ADD', $data);
+ if ($evt->advise_before()) $data[1] = $data[1] . " " . rawWiki($id);
+ $evt->advise_after();
+ unset($evt);
+ list($id,$body) = $data;
+ $said = false;
+ while(true) {
+ $result = $INDEXER->addPageWords($id, $body);
+ if ($result == "locked") {
+ if($said){
+ _quietecho(".");
+ }else{
+ _quietecho("Waiting for lockfile (max. 5 min)");
+ $said = true;
+ }
+ sleep(15);
+ } else {
+ break;
+ }
+ }
+ if ($result)
+ io_saveFile(metaFN($id,'.indexed'), idx_get_version());
_quietecho("done.\n");
- _unlock();
}
/**
@@ -141,7 +167,7 @@ function _clearindex(){
_lock();
_quietecho("Clearing index... ");
io_saveFile($conf['indexdir'].'/page.idx','');
- io_saveFile($conf['indexdir'].'/title.idx','');
+ //io_saveFile($conf['indexdir'].'/title.idx','');
$dir = @opendir($conf['indexdir']);
if($dir!==false){
while(($f = readdir($dir)) !== false){
@@ -150,6 +176,7 @@ function _clearindex(){
@unlink($conf['indexdir']."/$f");
}
}
+ @unlink($conf['indexdir'].'/lengths.idx');
_quietecho("done.\n");
_unlock();
}