https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30152
--- Comment #4 from Kevin Carnes <[email protected]> --- Comment on attachment 131017 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=131017 Bug 30152: Elasticsearch - queries with OR don't work with limits >From b4cfe66eea7d100d319a5ee256061e8eea15bd99 Mon Sep 17 00:00:00 2001 >From: Kevin Carnes <[email protected]> >Date: Tue, 22 Feb 2022 14:29:15 +0100 >Subject: [PATCH] Bug 30152: Elasticsearch - queries with OR don't work with > limits > >When a query with "OR" is combined with a limit in Elasticsearch, the >precedence is not preserved and the results are not correct. > >To test: >1) Set SearchEngine to Elasticsearch >2) Index records in Elasticsearch >3) Do an advanced search >4) Select More options >5) Enter a value for the first Keyword (e.g. Novels) >6) Change "and" before the second Keyword to "or" >7) Enter another value for the second Keyword (e.g. Prose) >8) Limit the search (e.g. Item type Books) >9) Do the search >10) Observe that records with the first keyword are not in the results >11) Apply the patch >12) Repeat the search >13) Observe that results with both keywords are in the results >14) Sign off > >Sponsored-by: Lund University Library >--- > Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > >diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm >b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm >index 3e2cb1b784..b2ef8aa8d9 100644 >--- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm >+++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm >@@ -306,9 +306,7 @@ sub build_query_compat { > # them into a structured ES query itself. Maybe later, though that'd > be > # more robust. > $search_param_query_str = join( ' ', > $self->_create_query_string(@search_params) ); >- $query_str = join( ' AND ', >- $search_param_query_str || (), >- $self->_join_queries( $self->_convert_index_strings(@$limits) ) >|| () ); >+ $query_str = join( ' AND ', map { "($_)" } grep { $_ } ( >$search_param_query_str, $self->_join_queries( >$self->_convert_index_strings(@$limits) ) ) ); > > # If there's no query on the left, let's remove the junk left behind > $query_str =~ s/^ AND //; >-- >2.17.1 -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
