diff --git a/lib/mongoid_search/keywords_extractor.rb b/lib/mongoid_search/keywords_extractor.rb index 6117ecd..e3e0b51 100644 --- a/lib/mongoid_search/keywords_extractor.rb +++ b/lib/mongoid_search/keywords_extractor.rb @@ -1,6 +1,6 @@ class KeywordsExtractor def self.extract(text) return [] if text.blank? - text.mb_chars.normalize(:kd).to_s.gsub(/[^\x00-\x7F]/,'').downcase.split(/[\s\.\-_:;'",]+/) + text.mb_chars.normalize(:kd).to_s.gsub(/[^[:alpha:]\s\.\-_:;'",]/,'').downcase.split(/[\s\.\-_:;'",]+/) end end \ No newline at end of file diff --git a/lib/mongoid_search/mongoid_search.rb b/lib/mongoid_search/mongoid_search.rb index 5cf34bd..02f347f 100644 --- a/lib/mongoid_search/mongoid_search.rb +++ b/lib/mongoid_search/mongoid_search.rb @@ -51,12 +51,13 @@ def search_relevant(query, options={}) scope_stack.inject{|a, b| a + b}.selector end - limit = options.delete(:limit) + options.delete(:limit) + options.delete(:skip) options.merge! :scope => {:keywords => keywords}, :query => query - - cursor = collection.map_reduce(map, reduce, options).find.sort(['value', -1]) - cursor = cursor.limit(limit) if limit - cursor + + res = collection.map_reduce(map, reduce, options) + + res.find.sort(['value', -1]) # Cursor end end