From d9b2c504639e3e336a0ef8a1f75c31452a556e90 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Thu, 24 Dec 2020 14:04:55 +0000 Subject: [PATCH] Bug 27307: Don't drop phrase directive when searching keyword index We convert 'keyword' to '' as an index since we want it to search all fields When we are searching 'as phrase', however, we should not drop the search type To test: 1 - Enable IntranetCatalogPullDown 2 - Set searchEngine to Elasticsearch 3 - Perform a search for 'Keyword as phrase' for a phrase that does appear in a record 4 - You get the result 5 - Reverse the order of words in the phrase 6 - You still get a result? 7 - Apply patch 8 - Restart all the things 9 - Reversed search does not return record 10 - Correct order and search, correct record returned Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart (cherry picked from commit 9cfce5f010c485ee5e046bcc99a9d33a70d9213a) Signed-off-by: Fridolin Somers --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index 08e4817eb6..06a765d386 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -732,7 +732,7 @@ sub _convert_index_fields { type => $index_type_convert{ $t // '__default' } }; $r->{field} = ($mc . $r->{field}) if $mc && $r->{field}; - $r->{field} ? $r : undef; + $r->{field} || $r->{type} ? $r : undef; } @indexes; } -- 2.39.5