From 3bfce862ec09131de682e11b09bbc45a307f8792 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sat, 7 Jun 2025 09:50:04 +0300 Subject: [PATCH] fix reindex --- lib/search_entries.rb | 14 ++++++++------ lib/submitters.rb | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/search_entries.rb b/lib/search_entries.rb index 6dbcc7f9..28e1e9a9 100644 --- a/lib/search_entries.rb +++ b/lib/search_entries.rb @@ -46,6 +46,8 @@ module SearchEntries end def build_tsquery(keyword) + keyword = keyword.delete("\0") + if keyword.match?(/\d/) && !keyword.match?(/\p{L}/) number = keyword.gsub(/\D/, '') @@ -86,10 +88,10 @@ module SearchEntries [ "SELECT setweight(to_tsvector(?), 'A') || setweight(to_tsvector(?), 'B') || setweight(to_tsvector(?), 'C') || setweight(to_tsvector(?), 'D')".squish, - [submitter.email.to_s, submitter.email.to_s.split('@').last].join(' ').downcase, + [submitter.email.to_s, submitter.email.to_s.split('@').last].join(' ').downcase.delete("\0"), [submitter.phone.to_s.gsub(/\D/, ''), - submitter.phone.to_s.gsub(PhoneCodes::REGEXP, '').gsub(/\D/, '')].uniq.join(' '), - TextUtils.transliterate(submitter.name.to_s.downcase), + submitter.phone.to_s.gsub(PhoneCodes::REGEXP, '').gsub(/\D/, '')].uniq.join(' ').delete("\0"), + TextUtils.transliterate(submitter.name.to_s.downcase).delete("\0"), build_submitter_values_string(submitter) ] ) @@ -118,12 +120,12 @@ module SearchEntries TextUtils.transliterate(v) end - values.uniq.join(' ') + values.uniq.join(' ').downcase.delete("\0") end def index_template(template) sql = SearchEntry.sanitize_sql_array( - ['SELECT to_tsvector(?)', TextUtils.transliterate(template.name.to_s.downcase)] + ['SELECT to_tsvector(?)', TextUtils.transliterate(template.name.to_s.downcase).delete("\0")] ) entry = template.search_entry || template.build_search_entry @@ -146,7 +148,7 @@ module SearchEntries return if submission.name.blank? sql = SearchEntry.sanitize_sql_array( - ['SELECT to_tsvector(?)', TextUtils.transliterate(submission.name.to_s.downcase)] + ['SELECT to_tsvector(?)', TextUtils.transliterate(submission.name.to_s.downcase).delete("\0")] ) entry = submission.search_entry || submission.build_search_entry diff --git a/lib/submitters.rb b/lib/submitters.rb index 91ae28b5..fa07076a 100644 --- a/lib/submitters.rb +++ b/lib/submitters.rb @@ -33,6 +33,8 @@ module Submitters end def fulltext_search_field(current_user, submitters, keyword, field_name) + keyword = keyword.delete("\0") + return submitters if keyword.blank? weight = FIELD_NAME_WEIGHTS[field_name]