sql >> Databasteknik >  >> RDS >> Mysql

Hur gör man en accent och skiftlägesokänslig sökning i MediaWiki-databasen?

MediaWiki TitleKey-tillägget är i grunden designad för detta, men den gör bara fodralvikning. Men om du inte har något emot att hacka det lite och har PHP iconv-tillägget installerat, kan du redigera TitleKey_body.php och ersätt metoden:

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

med t.ex.:

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

och (om)kör rebuildTitleKeys.php.

TitleKey-tillägget lagrar sina normaliserade titlar i en separat tabell , överraskande nog titlekey . Det är tänkt att nås via MediaWikis sökgränssnitt, men om du vill kan du säkert fråga det direkt också, t.ex. så här:

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


  1. Hur förhindrar man Mysql Connector/J från att konvertera tidszonen DATUM och TID?

  2. Jämförelse av databas med hög tillgänglighet - MySQL / MariaDB-replikering vs Oracle Data Guard

  3. Det enklaste sättet att lägga till flera utrymmen till en sträng i MySQL – SPACE()

  4. Docker-behållare för Postgres 9.1 exponerar inte port 5432 för värd