From 4c942284bf1788016f4490da2dd071e7c28cdb6e Mon Sep 17 00:00:00 2001 From: Petro Vashchuk Date: Thu, 10 Jun 2021 12:00:14 +0300 Subject: [PATCH] Bug 28316: avoid messing up regexes in the search queries This patch ensures that the behavior with QueryRegexEscapeOptions set to values other than "Escape" still will works as expected. It does so by storing the contents of regexes before escaping special characters and then restores the contents of regexes back to how it was before, ensuring that searching with regex is possible. --- .../SearchEngine/Elasticsearch/QueryBuilder.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index a0e4e3eaa9..4843f8d2e0 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -940,6 +940,19 @@ sub _clean_search_term { $term = $self->_query_regex_escape_process($term); + # save all regex contents away before escaping brackets: + my @saved_regexes; + my $rgx_i = 0; + while( + $term =~ s@( + (?