Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment faire une recherche insensible aux accents et à la casse dans la base de données MediaWiki ?

L'extension MediaWiki TitleKey est essentiellement conçu pour cela, mais il ne fait que plier le boîtier. Cependant, si cela ne vous dérange pas de le pirater un peu et que vous avez l'extension PHP iconv installé, vous pouvez modifier TitleKey_body.php et remplacez la méthode :

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

avec par exemple :

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

et (ré)exécutez restartTitleKeys.php.

L'extension TitleKey stocke ses titres normalisés dans un table séparée , étonnamment nommé titlekey . Il est destiné à être accessible via l'interface de recherche MediaWiki, mais si vous le souhaitez, vous pouvez également l'interroger directement, par ex. comme ceci :

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