From 778f022e8a913fafc7986bb8eec01e96ee30f1cb Mon Sep 17 00:00:00 2001 From: Janusz Kaczmarek Date: Tue, 8 Aug 2023 08:41:53 +0000 Subject: [PATCH] Bug 33406: Filter out some known isolated trouble makers Test plan: 1) Launch k-t-d with ES: -- ktd --es7 pull -- ktd --es7 up 2) Visit /cgi-bin/koha/authorities/authorities-home.pl and search for 'tim' 3) Edit that, add a dash '-' to 100$a, like 'Bunce, Tim - name'" 4) Do a authority search for 'tim - name', notice it errors out 5) Apply patch 6) Perform the same search, notice it doesn't error and returns the correct record Signed-off-by: Pedro Amorim Signed-off-by: Nick Clemens Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 27c6171222bf3abb5ed91e399bb2663579e8e367) Signed-off-by: Fridolin Somers (cherry picked from commit 14487cd5e06cc8e5da133194f8d31e60b03fab9b) Signed-off-by: Matt Blenkinsop --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index 3237bbc5e8..015f7b42ed 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -1235,6 +1235,9 @@ sub _split_query { # Filter out empty values @tokens = grep( /\S/, @tokens ); + # Filter out some known isolated trouble makers: -, ^, \, ~, + + @tokens = grep( !/^[-\^\\~\+]*$/, @tokens ); + return @tokens; } -- 2.39.2