From f378364eeae743293a05ba8cf8d02f8f5491e4b4 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 --- 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 dea84c83a2..d6e7be3042 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -1024,8 +1024,13 @@ sub clean_search_term { # screen all brackets with backslash $term =~ s/(?