<?php
-# $Id$
/**
* See deferred.doc
+ * @package MediaWiki
*/
/**
*
+ * @package MediaWiki
*/
class SearchUpdate {
}
function doUpdate() {
- global $wgDBminWordLen, $wgLang, $wgDisableSearchUpdate;
+ global $wgDBminWordLen, $wgContLang, $wgDisableSearchUpdate;
if( $wgDisableSearchUpdate || !$this->mId ) {
return false;
wfProfileIn( $fname );
require_once( 'SearchEngine.php' );
- $lc = SearchEngine::legalSearchChars() . '&#;';
- $db =& wfGetDB( DB_MASTER );
- $searchindex = $db->tableName( 'searchindex' );
+ $search =& SearchEngine::create();
+ $lc = $search->legalSearchChars() . '&#;';
if( $this->mText == false ) {
- # Just update the title
- $lowpri = $db->lowPriorityOption();
- $sql = "UPDATE $lowpri $searchindex SET si_title='" .
- $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) .
- "' WHERE si_page={$this->mId}";
- $db->query( $sql, "SearchUpdate::doUpdate" );
+ $search->updateTitle($this->mId,
+ Title::indexTitle( $this->mNamespace, $this->mTitle ));
wfProfileOut( $fname );
return;
}
# Language-specific strip/conversion
- $text = $wgLang->stripForSearch( $this->mText );
+ $text = $wgContLang->stripForSearch( $this->mText );
wfProfileIn( $fname.'-regexps' );
$text = preg_replace( "/<\\/?\\s*[A-Za-z][A-Za-z0-9]*\\s*([^>]*?)>/",
# Strip wiki '' and '''
$text = preg_replace( "/''[']*/", " ", $text );
wfProfileOut( "$fname-regexps" );
-
- $sql = "REPLACE INTO $searchindex (si_page,si_title,si_text) VALUES ({$this->mId},'" .
- $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) . "','" .
- $db->strencode( $text ) . "')";
- $db->query( $sql, 'SearchUpdate::doUpdate' );
+ $search->update($this->mId, Title::indexTitle( $this->mNamespace, $this->mTitle ),
+ $text);
wfProfileOut( $fname );
}
}
+/**
+ * Placeholder class
+ * @package MediaWiki
+ */
+class SearchUpdateMyISAM extends SearchUpdate {
+ # Inherits everything
+}
+
?>