<?php
-# $Id$
/**
- * See deferred.doc
- * @package MediaWiki
- */
-
-/**
- *
- * @package MediaWiki
+ * See deferred.txt
+ * @addtogroup Search
*/
class SearchUpdate {
}
function doUpdate() {
- global $wgDBminWordLen, $wgContLang, $wgDisableSearchUpdate;
+ global $wgContLang, $wgDisableSearchUpdate;
if( $wgDisableSearchUpdate || !$this->mId ) {
return false;
$fname = 'SearchUpdate::doUpdate';
wfProfileIn( $fname );
- require_once( 'SearchEngine.php' );
+ $search = SearchEngine::create();
$lc = SearchEngine::legalSearchChars() . '&#;';
- $db =& wfGetDB( DB_MASTER );
- $searchindex = $db->tableName( 'searchindex' );
-
- 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" );
+
+ if( $this->mText === false ) {
+ $search->updateTitle($this->mId,
+ Title::indexTitle( $this->mNamespace, $this->mTitle ));
wfProfileOut( $fname );
return;
}
wfProfileIn( $fname.'-regexps' );
$text = preg_replace( "/<\\/?\\s*[A-Za-z][A-Za-z0-9]*\\s*([^>]*?)>/",
' ', strtolower( " " . $text /*$this->mText*/ . " " ) ); # Strip HTML markup
- $text = preg_replace( "/(^|\\n)\\s*==\\s+([^\\n]+)\\s+==\\s/sD",
- "\\2 \\2 \\2 ", $text ); # Emphasize headings
+ $text = preg_replace( "/(^|\\n)==\\s*([^\\n]+)\\s*==(\\s)/sD",
+ "\\1\\2 \\2 \\2\\3", $text ); # Emphasize headings
# Strip external URLs
$uc = "A-Za-z0-9_\\/:.,~%\\-+&;#?!=()@\\xA0-\\xFF";
# Strip wiki '' and '''
$text = preg_replace( "/''[']*/", " ", $text );
wfProfileOut( "$fname-regexps" );
- $db->replace( 'searchindex', array(array('si_page')),
- array(
- 'si_page' => $this->mId,
- 'si_title' => $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ),
- 'si_text' => $db->strencode( $text )
- ), 'SearchUpdate::doUpdate' );
+
+ wfRunHooks( 'SearchUpdate', array( $this->mId, $this->mNamespace, $this->mTitle, &$text ) );
+
+ # Perform the actual update
+ $search->update($this->mId, Title::indexTitle( $this->mNamespace, $this->mTitle ),
+ $text);
+
wfProfileOut( $fname );
}
}
-/* Placeholder class */
+/**
+ * Placeholder class
+ * @addtogroup Search
+ */
class SearchUpdateMyISAM extends SearchUpdate {
# Inherits everything
}
-?>
+