From 921e9038dce8507b4160d2d31e685d347b952926 Mon Sep 17 00:00:00 2001 From: Janusz Kaczmarek Date: Tue, 23 Jul 2024 12:49:36 +0000 Subject: [PATCH] Bug 37433: Warning 'Use of uninitialized value $f/$d in hash element...' in log when sorting by relevance With ES, searches with Sort set to Relevance produce following warnings in log file: [WARN] Use of uninitialized value $f in hash element at /kohadevbox/koha/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm line 728. [WARN] Use of uninitialized value $d in hash element at /kohadevbox/koha/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm line 728. This is because sort_by = 'relevance' does not contain underscore. Test plan: ========== 1. Have a test environment with ES enabled. 2. Perform a search for a common word (like 'greek'). Make sure that the sort order is set to 'Relevance' (the default option in ktd). Check the content of the plack-intranet-error.log file--you should see warning lines with a messages "Use of uninitialized value $f in hash element ..." "Use of uninitialized value $d in hash element ..." 3. Apply the patch; restart_all. 4. Repeat p. 2. The log should be clean now. Sponsored-by: Ignatianum University in Cracow Signed-off-by: Roman Dolny --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index dea84c83a2..ef91b125a3 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -720,9 +720,11 @@ sub _convert_sort_fields { # Convert the fields and orders, drop anything we don't know about. grep { $_->{field} } map { my ( $f, $d ) = /(.+)_(.+)/; - { - field => $sort_field_convert{$f}, - direction => $sort_order_convert{$d} + if ( $f && $d ) { + { + field => $sort_field_convert{$f}, + direction => $sort_order_convert{$d}, + } } } @sort_by; } -- 2.39.2