Module: FuzzySearch
- Defined in:
- lib/split_trigrams.rb,
lib/fuzzy_search_ver.rb,
lib/fuzzy_model_extensions.rb,
lib/trigram_model_extensions.rb
Defined Under Namespace
Modules: FuzzyModelExtensions, TrigramModelExtensions
Constant Summary collapse
- VERSION =
"0.4"
Class Method Summary collapse
Class Method Details
.split_trigrams(s) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/split_trigrams.rb', line 2 def self.split_trigrams(s) s = s.join(" ") if s.is_a?(Array) return [] unless s and s.respond_to?(:to_s) words = s.to_s.strip.split(/[\s\-]+/) trigrams = Set.new words.each do |w| chars = w.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.strip chars = " " + chars + " " (0..chars.length-3).each do |idx| trigrams << chars[idx,3].to_s end end return trigrams.to_a end |