From fc59198172012f2638e40961f7666aae1929837f Mon Sep 17 00:00:00 2001 From: Janusz Kaczmarek Date: Mon, 22 Jul 2024 12:01:40 +0000 Subject: [PATCH] Bug 37430: (Bug 33407 follow-up) ISBD punctuation removal in ES searches Tiny adjustment for very special and malicious cases needed in Koha::SearchEngine::Elasticsearch::QueryBuilder::clean_search_term. Extended unit tests added following Nick's suggestions in Bug 33407 discussion. Test plan ========= 1. Use ktd with Elasticsearch and ktd's test data. 2. Edit the 4th record (The C programming language) and add a semicolon followed by a space before the slash in 245 $a to have: The C programming language ; / 3. Make a search for the first ISBD zone taken verbatim from the forth record: The C programming language ; / Brian W. Kernighan, Dennis M. Ritchie There should be no result. 4. Apply the patch, restart plack. 5. Repeat the search. You should get the record. Sponsored-by: Ignatianum University in Cracow Signed-off-by: Roman Dolny Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index bd0ba28197..b641e97404 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -1026,8 +1026,13 @@ sub clean_search_term { # screen all brackets with backslash $term =~ s/(?