From: mkanat%bugzilla.org <> Date: Tue, 1 Jul 2008 13:13:25 +0000 (+0000) Subject: Bug 432601: [Oracle] Fix 'Find a Specific Bug' (fulltext search) X-Git-Tag: bugzilla-3.2rc1~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab34571e4811032c6756e4f3284f460e316593a7;p=thirdparty%2Fbugzilla.git Bug 432601: [Oracle] Fix 'Find a Specific Bug' (fulltext search) Patch By Xiaoou Wu r=mkanat, a=mkanat --- diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm index 9e8ea73020..92f1247de7 100644 --- a/Bugzilla/DB/Oracle.pm +++ b/Bugzilla/DB/Oracle.pm @@ -132,10 +132,10 @@ sub sql_from_days{ return " TO_DATE($date,'J') "; } sub sql_fulltext_search { - my ($self, $column, $text) = @_; + my ($self, $column, $text, $label) = @_; $text = $self->quote($text); trick_taint($text); - return "CONTAINS($column,$text)"; + return "CONTAINS($column,$text,$label)", "SCORE($label)"; } sub sql_date_format { diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 272b411529..2f8d86c8e6 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -1239,16 +1239,20 @@ sub _content_matches { "ON bugs.bug_id = $table.bug_id"); # Create search terms to add to the SELECT and WHERE clauses. - my $term1 = $dbh->sql_fulltext_search("$table.$comments_col", $$v); - my $term2 = $dbh->sql_fulltext_search("$table.short_desc", $$v); - + my ($term1, $rterm1) = $dbh->sql_fulltext_search("$table.$comments_col", + $$v, 1); + my ($term2, $rterm2) = $dbh->sql_fulltext_search("$table.short_desc", + $$v, 2); + $rterm1 = $term1 if !$rterm1; + $rterm2 = $term2 if !$rterm2; + # The term to use in the WHERE clause. $$term = "$term1 > 0 OR $term2 > 0"; # In order to sort by relevance (in case the user requests it), # we SELECT the relevance value and give it an alias so we can # add it to the SORT BY clause when we build it in buglist.cgi. - my $select_term = "($term1 + $term2) AS relevance"; + my $select_term = "($rterm1 + $rterm2) AS relevance"; # Users can specify to display the relevance field, in which case # it'll show up in the list of fields being selected, and we need