lib/mongoid_search.rb in mongoid_search-0.2.8 vs lib/mongoid_search.rb in mongoid_search-0.3.0

- old
+ new

@@ -1,4 +1,62 @@ +# encoding: utf-8 + require 'mongoid_search/railtie' if defined?(Rails) -require 'mongoid_search/util' -require 'mongoid_search/log' require 'mongoid_search/mongoid_search' + +module Mongoid::Search + ## Default matching type. Match :any or :all searched keywords + mattr_accessor :match + @@match = :any + + ## If true, an empty search will return all objects + mattr_accessor :allow_empty_search + @@allow_empty_search = false + + ## If true, will search with relevance information + mattr_accessor :relevant_search + @@relevant_search = false + + ## Stem keywords + mattr_accessor :stem_keywords + @@stem_keywords = false + + ## Words to ignore + mattr_accessor :ignore_list + @@ignore_list = [] + + ## An array of words + # @@ignore_list = %w{ a an to from as } + + ## Or from a file + # @@ignore_list = YAML.load(File.open(File.dirname(__FILE__) + '/config/ignorelist.yml'))["ignorelist"] + + ## Search using regex (slower) + mattr_accessor :regex_search + @@regex_search = true + + ## Regex to search + mattr_accessor :regex + + ## Match partial words on both sides (slower) + @@regex = Proc.new { |query| /#{query}/ } + + ## Match partial words on the beginning or in the end (slightly faster) + # @@regex = Proc.new { |query| /ˆ#{query}/ } + # @@regex = Proc.new { |query| /#{query}$/ } + + # Ligatures to be replaced + # http://en.wikipedia.org/wiki/Typographic_ligature + mattr_accessor :ligatures + @@ligatures = { "œ"=>"oe", "æ"=>"ae" } + + # Minimum word size. Words smaller than it won't be indexed + mattr_accessor :minimum_word_size + @@minimum_word_size = 2 + + def self.setup + yield self + end +end + +require 'mongoid_search/util' +require 'mongoid_search/log' \ No newline at end of file