diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-11-24 12:24:24 +0100 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-11-27 11:29:40 +0100 |
commit | da42dfb3cf4a2fb0cdcc1a3b41438516a0bed0e5 (patch) | |
tree | 1dc5014e27ce049e47e8670b83b79e0c49bb96b9 /lib | |
parent | d4eea275310867eccc927d0e92a1d19a165f0668 (diff) | |
download | gitlab-ce-da42dfb3cf4a2fb0cdcc1a3b41438516a0bed0e5.tar.gz |
Use fuzzy search with minimum length of 3 characters where appropriatedm-search-pattern
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/sql/pattern.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/gitlab/sql/pattern.rb b/lib/gitlab/sql/pattern.rb index 20ca36efb29..5f0c98cb5a4 100644 --- a/lib/gitlab/sql/pattern.rb +++ b/lib/gitlab/sql/pattern.rb @@ -7,6 +7,12 @@ module Gitlab REGEX_QUOTED_WORD = /(?<=\A| )"[^"]+"(?= |\z)/ class_methods do + def fuzzy_search(query, columns) + matches = columns.map { |col| fuzzy_arel_match(col, query) }.compact.reduce(:or) + + where(matches) + end + def to_pattern(query) if partial_matching?(query) "%#{sanitize_sql_like(query)}%" |