Skip to content

Commit

Permalink
Handle single quote when searching by keyword. (#2158)
Browse files Browse the repository at this point in the history
Similarly to other characters, add single quotes to the list of characters to handle when searching by keyword.

Fixes: CV2-5808.
  • Loading branch information
caiosba authored Dec 16, 2024
1 parent eaa870f commit 0d6bdfe
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/check_search.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def adjust_keyword_filter
unless @options['keyword'].blank?
# This regex removes all characters except letters, numbers, hashtag, search operators, emojis and whitespace
# in any language - stripping out special characters can improve match results
@options['keyword'].gsub!(/[^[:word:]\s#~+\-|()"\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1F1E6}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/, ' ')
@options['keyword'].gsub!(/[^[:word:]\s#'~+\-|()"\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1F1E6}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/, ' ')

# Set fuzzy matching for keyword search, right now with automatic Levenshtein Edit Distance
# https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html
Expand Down
4 changes: 4 additions & 0 deletions test/lib/check_search_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ def teardown
query = 'Something is going to happen on 04/11, reportedly'
search = CheckSearch.new({ keyword: query }.to_json, nil, @team.id)
assert_equal 'Something is going to happen on 04 11 reportedly', search.instance_variable_get('@options')['keyword']

query = "Something is going to happen on Foo's house"
search = CheckSearch.new({ keyword: query }.to_json, nil, @team.id)
assert_equal "Something is going to happen on Foo's house", search.instance_variable_get('@options')['keyword']
end

test "should search for array field containing nil values" do
Expand Down

0 comments on commit 0d6bdfe

Please sign in to comment.