Completed reversion of removal of non-incremental link updates. Reasons previously...
[lhc/web/wiklou.git] / includes / SearchUpdate.php
index 3f268b8..be7a4c4 100644 (file)
@@ -1,7 +1,6 @@
 <?php
-# $Id$
 /**
- * See deferred.doc
+ * See deferred.txt
  * @package MediaWiki
  */
 
@@ -30,7 +29,7 @@ class SearchUpdate {
        }
 
        function doUpdate() {
-               global $wgDBminWordLen, $wgLang, $wgDisableSearchUpdate;
+               global $wgDBminWordLen, $wgContLang, $wgDisableSearchUpdate;
 
                if( $wgDisableSearchUpdate || !$this->mId ) {
                        return false;
@@ -39,23 +38,18 @@ class SearchUpdate {
                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*([^>]*?)>/",
@@ -105,14 +99,18 @@ class SearchUpdate {
                # 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' );
+               $search->update($this->mId, Title::indexTitle( $this->mNamespace, $this->mTitle ),
+                               $text);
                wfProfileOut( $fname );
        }
 }
 
+/**
+ * Placeholder class
+ * @package MediaWiki
+ */
+class SearchUpdateMyISAM extends SearchUpdate {
+       # Inherits everything
+}
+
 ?>