sql >> Database teknologi >  >> RDS >> Mysql

Hvordan laver man en accent og ufølsom søgning i MediaWiki-databasen?

MediaWiki TitleKey-udvidelsen er dybest set designet til dette, men det gør kun sag-foldning. Men hvis du ikke har noget imod at hacke det lidt, og har PHP iconv-udvidelsen installeret, kunne du redigere TitleKey_body.php og erstatte metoden:

static function normalize( $text ) {
    global $wgContLang;
    return $wgContLang->caseFold( $text );
}

med f.eks.:

static function normalize( $text ) {
    return strtoupper( iconv( 'UTF-8', 'US-ASCII//TRANSLIT', $text ) );
}

og (gen)kør rebuildTitleKeys.php.

TitleKey-udvidelsen gemmer sine normaliserede titler i en separat tabel , overraskende navngivet titlekey . Det er beregnet til at blive tilgået via MediaWiki-søgegrænsefladen, men hvis du vil, kan du helt sikkert også forespørge det direkte, f.eks. sådan her:

SELECT page.* FROM page
  JOIN titlekey ON tk_page = page_id
WHERE tk_namespace = 0 AND tk_key = 'SOMETHING';


  1. ini_set, set_time_limit, (max_execution_time) - virker ikke

  2. Installation af Oracle Fusion Middleware / WebLogic Server 11g

  3. MySQL-serverstartproblemer på Mavericks

  4. Sådan udpakkes en understreng i MySQL