Module: DynamicSunspotSearch::Translator::Fulltext
- Defined in:
- lib/dynamic_sunspot_search/translator/fulltext.rb
Class Method Summary collapse
- .apply(query_object, fulltext) ⇒ Object
- .apply_boost(query_object, options) ⇒ Object
- .apply_boost_fields(query_object, options) ⇒ Object
- .apply_fields(query_object, options) ⇒ Object
- .apply_phrase_fields(query_object, options) ⇒ Object
- .apply_phrase_slop(query_object, options) ⇒ Object
- .apply_query_phrase_slop(query_object, options) ⇒ Object
- .method_mapper(query_object, method, options) ⇒ Object
Class Method Details
.apply(query_object, fulltext) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 6 def self.apply(query_object, fulltext) return unless fulltext.present? query_object.tap do |search| case fulltext when String, Symbol search.fulltext fulltext.to_s when Array fulltext.each do |ft| apply(search, ft) end when Hash query = fulltext.delete(:query) search.fulltext(query) do fulltext.each do |method, args| method_mapper(self, method, args) end end else raise NotImplementedError end end end |
.apply_boost(query_object, options) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 48 def self.apply_boost(query_object, ) query_object.tap do |search| if [:scope] search.boost(2.0) do Scope.apply(self, [:scope]) end else search.boost(2.0) end end end |
.apply_boost_fields(query_object, options) ⇒ Object
60 61 62 63 64 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 60 def self.apply_boost_fields(query_object, ) query_object.tap do |search| search.boost_fields end end |
.apply_fields(query_object, options) ⇒ Object
66 67 68 69 70 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 66 def self.apply_fields(query_object, ) query_object.tap do |search| search.fields *Array.wrap() end end |
.apply_phrase_fields(query_object, options) ⇒ Object
72 73 74 75 76 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 72 def self.apply_phrase_fields(query_object, ) query_object.tap do |search| search.phrase_fields end end |
.apply_phrase_slop(query_object, options) ⇒ Object
78 79 80 81 82 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 78 def self.apply_phrase_slop(query_object, ) query_object.tap do |search| search.phrase_slop end end |
.apply_query_phrase_slop(query_object, options) ⇒ Object
84 85 86 87 88 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 84 def self.apply_query_phrase_slop(query_object, ) query_object.tap do |search| search.query_phrase_slop end end |
.method_mapper(query_object, method, options) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/dynamic_sunspot_search/translator/fulltext.rb', line 29 def self.method_mapper(query_object, method, ) case method when :boost apply_boost(query_object, ) when :boost_fields apply_boost_fields(query_object, ) when :fields apply_fields(query_object, ) when :phrase_fields apply_phrase_fields(query_object, ) when :phrase_slop apply_phrase_slop(query_object, ) when :query_phrase_slop apply_query_phrase_slop(query_object, ) else raise NotImplementedError end end |