diff options
author | Andreas Gohr <andi@splitbrain.org> | 2011-02-06 19:07:31 +0100 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2011-02-06 19:11:19 +0100 |
commit | 4f0030dd466f56b3dc0c864656fb1bf0e76d2932 (patch) | |
tree | 09291d0635244f84e673b8336a26f44d4d92d754 | |
parent | 412b5df14aaa2104af3d82e77380c5321cd94389 (diff) | |
download | rpg-4f0030dd466f56b3dc0c864656fb1bf0e76d2932.tar.gz rpg-4f0030dd466f56b3dc0c864656fb1bf0e76d2932.tar.bz2 |
ignore soft-hyphens for search FS#2049
This makes it possible to find words that include soft-hyphens. However,
search higlighting will not work and I have no idea how to make it work.
-rw-r--r-- | doku.php | 1 | ||||
-rw-r--r-- | inc/fulltext.php | 1 | ||||
-rw-r--r-- | inc/indexer.php | 9 |
3 files changed, 10 insertions, 1 deletions
@@ -27,6 +27,7 @@ if (isset($_SERVER['HTTP_X_DOKUWIKI_DO'])){ require_once(DOKU_INC.'inc/init.php'); //import variables +$_REQUEST['id'] = str_replace("\xC2\xAD",'',$_REQUEST['id']); //soft-hyphen $QUERY = trim($_REQUEST['id']); $ID = getID(); diff --git a/inc/fulltext.php b/inc/fulltext.php index be3938cac..0f2414213 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -304,6 +304,7 @@ function ft_pagesorter($a, $b){ */ function ft_snippet($id,$highlight){ $text = rawWiki($id); + $text = str_replace("\xC2\xAD",'',$text); // remove soft-hyphens $evdata = array( 'id' => $id, 'text' => &$text, diff --git a/inc/indexer.php b/inc/indexer.php index 9cf079261..526c8db05 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -221,7 +221,14 @@ function idx_getPageWords($page){ list($page,$body) = $data; - $body = strtr($body, "\r\n\t", ' '); + $body = strtr($body, + array( + "\r" => ' ', + "\n" => ' ', + "\t" => ' ', + "\xC2\xAD" => '', //soft-hyphen + ) + ); $tokens = explode(' ', $body); $tokens = array_count_values($tokens); // count the frequency of each token |