Module: MongoSearch::Searchable::ClassMethods

Defined in:
lib/mongo_search.rb

Instance Method Summary collapse

Instance Method Details

#search(query) ⇒ Object



47
48
49
50
# File 'lib/mongo_search.rb', line 47

def search(query)
  warn("[DEPRECATION] `search` is deprecated. Please use `text_search` instead.")
  text_search(query)
end

#search_in(*args) ⇒ Object



37
38
39
40
# File 'lib/mongo_search.rb', line 37

def search_in(*args)
  warn('[DEPRECATION `search_in` is deprecated. Please use `text_search_in` instead.')
  text_search_in(args)
end

#text_search(query) ⇒ Object



42
43
44
45
# File 'lib/mongo_search.rb', line 42

def text_search(query)
  words = KeywordsExtractor.extract(query).map { |word| /#{word}/ }
  self.send("#{self.match}_in", _keywords: words)
end

#text_search_in(*args) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mongo_search.rb', line 23

def text_search_in(*args)
  options = args.pop if args.last.has_key?(:match)
  self.match = options[:match]
rescue NoMethodError
ensure
  self.match ||= :all
  self.search_fields = args

  field :_keywords, type: Array
  index :_keywords

  before_save :set_keywords
end