From 92ed21f0ab30611e49168cd5a2619d26474b35fb Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Tue, 9 Mar 2010 04:19:55 +0000 Subject: [PATCH] =?utf8?q?follow-up=20r61856=20=E2=80=94=20wordsegmentatio?= =?utf8?q?n=20should=20be=20done=20for=20all=20search=20engines,=20not=20j?= =?utf8?q?ust=20mysql?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- includes/search/SearchEngine.php | 5 ++++- includes/search/SearchMySQL.php | 3 +-- includes/search/SearchUpdate.php | 6 +++--- languages/classes/LanguageZh_hans.php | 1 + 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/includes/search/SearchEngine.php b/includes/search/SearchEngine.php index 7f80447125..67790dd974 100644 --- a/includes/search/SearchEngine.php +++ b/includes/search/SearchEngine.php @@ -56,7 +56,10 @@ class SearchEngine { * @return string */ public function normalizeText( $string ) { - return $string; + global $wgContLang; + + // Some languages such as Chinese require word segmentation + return $wgContLang->wordSegmentation( $string ); } /** diff --git a/includes/search/SearchMySQL.php b/includes/search/SearchMySQL.php index 0c238be892..ff6ae7abcb 100644 --- a/includes/search/SearchMySQL.php +++ b/includes/search/SearchMySQL.php @@ -325,8 +325,7 @@ class SearchMySQL extends SearchEngine { wfProfileIn( __METHOD__ ); - // Some languages such as Chinese require word segmentation - $out = $wgContLang->wordSegmentation( $string ); + $out = parent::normalizeText( $string ); // MySQL fulltext index doesn't grok utf-8, so we // need to fold cases and convert to hex diff --git a/includes/search/SearchUpdate.php b/includes/search/SearchUpdate.php index e30c70e6d1..7840dd82a3 100644 --- a/includes/search/SearchUpdate.php +++ b/includes/search/SearchUpdate.php @@ -37,7 +37,7 @@ class SearchUpdate { if( $this->mText === false ) { $search->updateTitle($this->mId, - Title::indexTitle( $this->mNamespace, $this->mTitle )); + $search->normalizeText( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) ); wfProfileOut( $fname ); return; } @@ -97,8 +97,8 @@ class SearchUpdate { wfRunHooks( 'SearchUpdate', array( $this->mId, $this->mNamespace, $this->mTitle, &$text ) ); # Perform the actual update - $search->update($this->mId, Title::indexTitle( $this->mNamespace, $this->mTitle ), - $text); + $search->update($this->mId, $search->normalizeText( Title::indexTitle( $this->mNamespace, $this->mTitle ) ), + $search->normalizeText( $text ) ); wfProfileOut( $fname ); } diff --git a/languages/classes/LanguageZh_hans.php b/languages/classes/LanguageZh_hans.php index 5b03d73145..20d34155b6 100644 --- a/languages/classes/LanguageZh_hans.php +++ b/languages/classes/LanguageZh_hans.php @@ -25,6 +25,7 @@ class LanguageZh_hans extends Language { // Double-width roman characters $s = self::convertDoubleWidth( $string ); $s = trim( $s ); + $s = self::wordSegmentation( $s ); $s = parent::normalizeForSearch( $s ); wfProfileOut( __METHOD__ ); -- 2.20.1