Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przeprowadzić wyszukiwanie z uwzględnieniem akcentu i wielkości liter w bazie danych MediaWiki?

MediaWiki Rozszerzenie TitleKey jest zasadniczo do tego przeznaczony, ale służy tylko do składania etui. Jeśli jednak nie masz nic przeciwko zhakowaniu go i masz rozszerzenie PHP iconv zainstalowany, możesz edytować TitleKey_body.php i zamień metodę:

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

np.:

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

i (ponownie) uruchom rebuildTitleKeys.php.

Rozszerzenie TitleKey przechowuje swoje znormalizowane tytuły w oddzielna tabela , o zaskakującej nazwie titlekey . Jest przeznaczony do dostępu za pośrednictwem interfejsu wyszukiwania MediaWiki, ale jeśli chcesz, z pewnością możesz również zapytać go bezpośrednio, np. tak:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsza praktyka / standard przechowywania adresu w bazie danych SQL

  2. Problem ze znakami cyrylicy w przyjaznym adresie URL

  3. Jaka jest poprawna składnia wyrażenia regularnego znajdź i zamień przy użyciu REGEXP_REPLACE w MariaDB?

  4. Najlepsze praktyki dotyczące długości kolumny varchar SQL

  5. WebApp (Tomcat-jdbc) Połączenie z pulą bazy danych zgłaszające wyjątek porzucenia