Bug 46221, Bug 70605 - Language code fixes
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1406 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
8caef4e772
commit
d097f6468f
|
@ -179,8 +179,7 @@ sub sql_fulltext_search
|
|||
my ($self, $column, $text) = @_;
|
||||
|
||||
# stem text
|
||||
my $lang = LANG_FULL_ISO->{lc(Bugzilla->params->{stem_language}||'')} || 'en';
|
||||
$text = stem_text($text, $lang);
|
||||
$text = stem_text($text, Bugzilla->params->{stem_language});
|
||||
|
||||
# quote un-quoted compound words
|
||||
my @words = quotewords('[\s()]+', 'delimiters', $text);
|
||||
|
|
|
@ -44,7 +44,7 @@ package Bugzilla::DB::Pg;
|
|||
use strict;
|
||||
|
||||
use Bugzilla::Error;
|
||||
use Bugzilla::Constants qw(LANG_ISO_FULL);
|
||||
use Bugzilla::Constants qw(LANG_ISO_FULL LANG_FULL_ISO);
|
||||
use DBD::Pg;
|
||||
|
||||
# This module extends the DB interface via inheritance
|
||||
|
@ -189,13 +189,15 @@ sub sql_fulltext_search
|
|||
my $self = shift;
|
||||
my ($column, $text) = @_;
|
||||
$text = $self->quote($text);
|
||||
my $lang = lc(Bugzilla->params->{stem_language} || 'en');
|
||||
$lang = LANG_ISO_FULL->{$lang} || 'english' if !LANG_FULL_ISO->{$lang};
|
||||
# Try to_tsquery, and use plainto_tsquery if the syntax is incorrect
|
||||
# FIXME reporting query parse errors to user would be useful here
|
||||
eval { $self->do("SELECT to_tsquery($language$text)") };
|
||||
eval { $self->do("SELECT to_tsquery('$lang',$text)") };
|
||||
my $op = $@ ? 'plainto_tsquery' : 'to_tsquery';
|
||||
return (
|
||||
"($column \@\@ $op($language$text))",
|
||||
"(ts_rank($column, $op($language$text)))",
|
||||
"($column \@\@ $op('$lang',$text))",
|
||||
"(ts_rank($column, $op('$lang',$text)))",
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -204,7 +206,8 @@ sub quote_fulltext
|
|||
{
|
||||
my $self = shift;
|
||||
my ($a) = @_;
|
||||
my $lang = LANG_ISO_FULL->{Bugzilla->params->{stem_language}} || 'english';
|
||||
my $lang = lc(Bugzilla->params->{stem_language}||'en');
|
||||
$lang = LANG_ISO_FULL->{$lang} || 'english' if !LANG_FULL_ISO->{$lang};
|
||||
return "to_tsvector('$lang',".$self->quote($a).")";
|
||||
}
|
||||
|
||||
|
|
|
@ -740,6 +740,7 @@ sub stem_text
|
|||
my ($text, $lang, $allow_verbatim) = @_;
|
||||
return '' if !defined $text || $text =~ /^\s*$/so;
|
||||
return $text if !$INC{'Lingua/Stem/Snowball.pm'};
|
||||
$lang = lc($lang || 'en');
|
||||
$lang = LANG_FULL_ISO->{$lang} || 'en' if !LANG_ISO_FULL->{$lang};
|
||||
Encode::_utf8_on($text) if Bugzilla->params->{utf8};
|
||||
# CustIS Bug 66033 - _ is wanted to also be a delimiter
|
||||
|
|
Loading…
Reference in New Issue