From 4f0030dd466f56b3dc0c864656fb1bf0e76d2932 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 6 Feb 2011 19:07:31 +0100 Subject: 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. --- doku.php | 1 + inc/fulltext.php | 1 + inc/indexer.php | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/doku.php b/doku.php index 6cd0c0e0c..dc5e0ec66 100644 --- a/doku.php +++ b/doku.php @@ -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 -- cgit v1.2.3