Bug 23521: Put parentheses arround limit terms
Test plan: - Use Elasticsearch 6 (you'll need Bug 18969), - create a biblio (#1) with "Dillinger Girl" in author and what you want in title, - create another biblio (#2) with the word "girl" in the title and "Dillinger Escaplan" as author - reindex - search * and refine on "Dillinger Girl" - Ko => Biblio #1 and #2 appear - Apply this patch, - search * and refine on "Dillinger Girl" - Ok => anly biblio #1 appears - use Elasticsearch 5 again - check for no search regression Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr> Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Ere Maijala <ere.maijala@helsinki.fi> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
0c9b39a66d
commit
c5e367c54e
|
|
@ -1007,7 +1007,13 @@ sub _fix_limit_special_cases {
|
|||
push @new_lim, 'onloan:false';
|
||||
}
|
||||
else {
|
||||
push @new_lim, $l;
|
||||
my ( $field, $term ) = $l =~ /^\s*([\w,-]*?):(.*)/;
|
||||
if ( defined($field) && defined($term) ) {
|
||||
push @new_lim, "$field:($term)";
|
||||
}
|
||||
else {
|
||||
push @new_lim, $l;
|
||||
}
|
||||
}
|
||||
}
|
||||
return \@new_lim;
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ subtest 'build_authorities_query_compat() tests' => sub {
|
|||
};
|
||||
|
||||
subtest 'build_query tests' => sub {
|
||||
plan tests => 48;
|
||||
plan tests => 50;
|
||||
|
||||
my $qb;
|
||||
|
||||
|
|
@ -467,6 +467,20 @@ subtest 'build_query tests' => sub {
|
|||
'(title:"donald duck")',
|
||||
"query of specific field is not added AND suppress:0"
|
||||
);
|
||||
|
||||
( undef, $query ) = $qb->build_query_compat( ['AND'], ['title:"donald duck"'], undef, ['author:Dillinger Escaplan'] );
|
||||
is(
|
||||
$query->{query}{query_string}{query},
|
||||
'(title:"donald duck") AND author:(Dillinger Escaplan)',
|
||||
"Simplle query with limit's term in parentheses"
|
||||
);
|
||||
|
||||
( undef, $query ) = $qb->build_query_compat( ['AND'], ['title:"donald duck"'], undef, ['author:Dillinger Escaplan', 'itype:BOOK'] );
|
||||
is(
|
||||
$query->{query}{query_string}{query},
|
||||
'(title:"donald duck") AND (author:(Dillinger Escaplan)) AND (itype:(BOOK))',
|
||||
"Simplle query with each limit's term in parentheses"
|
||||
);
|
||||
is($query_cgi, 'idx=&q=title%3A%22donald%20duck%22', 'query cgi');
|
||||
is($query_desc, 'title:"donald duck"', 'query desc ok');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue