X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Frebuildtextindex.php;h=5971d5e9f7fb4e955d94441a78432bf92b84b0fe;hb=417a83a1a3ddf374dff5a14d8a08cd4c6099d357;hp=b7f07629ecc9a4d85480e21a1b76d6f8d5af86f9;hpb=8bb5a6c461c31ee5ce6874548246fc2c520686f6;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/rebuildtextindex.php b/maintenance/rebuildtextindex.php index b7f07629ec..5971d5e9f7 100644 --- a/maintenance/rebuildtextindex.php +++ b/maintenance/rebuildtextindex.php @@ -27,6 +27,9 @@ require_once __DIR__ . '/Maintenance.php'; +use Wikimedia\Rdbms\IMaintainableDatabase; +use Wikimedia\Rdbms\DatabaseSqlite; + /** * Maintenance script that rebuilds search index table from scratch. * @@ -36,7 +39,7 @@ class RebuildTextIndex extends Maintenance { const RTI_CHUNK_SIZE = 500; /** - * @var Database + * @var IMaintainableDatabase */ private $db; @@ -90,11 +93,7 @@ class RebuildTextIndex extends Maintenance { $this->output( "Rebuilding index fields for {$count} pages...\n" ); $n = 0; - $fields = array_merge( - Revision::selectPageFields(), - Revision::selectFields(), - Revision::selectTextFields() - ); + $revQuery = Revision::getQueryInfo( [ 'page', 'text' ] ); while ( $n < $count ) { if ( $n ) { @@ -102,7 +101,7 @@ class RebuildTextIndex extends Maintenance { } $end = $n + self::RTI_CHUNK_SIZE - 1; - $res = $this->db->select( [ 'page', 'revision', 'text' ], $fields, + $res = $this->db->select( $revQuery['tables'], $revQuery['fields'], [ "page_id BETWEEN $n AND $end", 'page_latest = rev_id', 'rev_text_id = old_id' ], __METHOD__ ); @@ -142,9 +141,10 @@ class RebuildTextIndex extends Maintenance { private function createMysqlTextIndex() { $searchindex = $this->db->tableName( 'searchindex' ); $this->output( "\nRebuild the index...\n" ); - $sql = "ALTER TABLE $searchindex ADD FULLTEXT si_title (si_title), " . - "ADD FULLTEXT si_text (si_text)"; - $this->db->query( $sql, __METHOD__ ); + foreach ( [ 'si_title', 'si_text' ] as $field ) { + $sql = "ALTER TABLE $searchindex ADD FULLTEXT $field ($field)"; + $this->db->query( $sql, __METHOD__ ); + } } /**