Module: Flex::Scope::FilterMethods
Instance Method Summary collapse
-
#filters(*value) ⇒ Object
accepts one or an array or a list of filter structures.
- #missing(*fields) ⇒ Object
-
#range(value) ⇒ Object
accepts one hash of ranges documented at www.elasticsearch.org/guide/reference/query-dsl/range-filter/.
-
#term(term_or_terms_hash) ⇒ Object
accepts a single key hash or a multiple keys hash, that will be translated in a array of single key hashes.
-
#terms(value) ⇒ Object
accepts also :any_term => nil for missing values.
Instance Method Details
#filters(*value) ⇒ Object
accepts one or an array or a list of filter structures
22 23 24 |
# File 'lib/flex/scope/filter_methods.rb', line 22 def filters(*value) deep_merge boolean_wrapper( :filters => array_value(value) ) end |
#missing(*fields) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/flex/scope/filter_methods.rb', line 26 def missing(*fields) missing_list = [] for field in fields missing_list.push(:missing => field) end deep_merge :_missing_list => missing_list end |
#range(value) ⇒ Object
accepts one hash of ranges documented at www.elasticsearch.org/guide/reference/query-dsl/range-filter/
45 46 47 |
# File 'lib/flex/scope/filter_methods.rb', line 45 def range(value) deep_merge boolean_wrapper(:range => value) end |
#term(term_or_terms_hash) ⇒ Object
accepts a single key hash or a multiple keys hash, that will be translated in a array of single key hashes
35 36 37 38 39 40 41 |
# File 'lib/flex/scope/filter_methods.rb', line 35 def term(term_or_terms_hash) term_list = [] term_or_terms_hash.each do |term, value| term_list.push(:term => {term => value}) end deep_merge boolean_wrapper(:term_list => term_list) end |
#terms(value) ⇒ Object
accepts also :any_term => nil for missing values
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/flex/scope/filter_methods.rb', line 8 def terms(value) terms, missing_list = {}, [] value.each { |f, v| v.nil? ? missing_list.push({ :missing => f }) : (terms[f] = v) } terms, term = terms.partition{|k,v| v.is_a?(Array)} term_list = [] term.each do |term, value| term_list.push(:term => {term => value}) end deep_merge boolean_wrapper( :terms_list => Hash[terms], :term_list => term_list, :_missing_list => missing_list ) end |