Class: Tire::Search::Query
- Inherits:
-
Object
- Object
- Tire::Search::Query
- Defined in:
- lib/tire/search/query.rb
Instance Method Summary collapse
- #all ⇒ Object
- #boolean(options = {}, &block) ⇒ Object
- #custom_score(options = {}, &block) ⇒ Object
- #dis_max(options = {}, &block) ⇒ Object
- #filtered(&block) ⇒ Object
- #fuzzy(field, value, options = {}) ⇒ Object
- #ids(values, type) ⇒ Object
-
#initialize(&block) ⇒ Query
constructor
A new instance of Query.
- #prefix(field, value, options = {}) ⇒ Object
- #range(field, value) ⇒ Object
- #string(value, options = {}) ⇒ Object
- #term(field, value, options = {}) ⇒ Object
- #terms(field, value, options = {}) ⇒ Object
- #text(field, value, options = {}) ⇒ Object
- #to_hash ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(&block) ⇒ Query
Returns a new instance of Query.
5 6 7 8 |
# File 'lib/tire/search/query.rb', line 5 def initialize(&block) @value = {} block.arity < 1 ? self.instance_eval(&block) : block.call(self) if block_given? end |
Instance Method Details
#all ⇒ Object
78 79 80 81 |
# File 'lib/tire/search/query.rb', line 78 def all @value = { :match_all => {} } @value end |
#boolean(options = {}, &block) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/tire/search/query.rb', line 57 def boolean(={}, &block) @boolean ||= BooleanQuery.new() block.arity < 1 ? @boolean.instance_eval(&block) : block.call(@boolean) if block_given? @value[:bool] = @boolean.to_hash @value end |
#custom_score(options = {}, &block) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/tire/search/query.rb', line 45 def custom_score(={}, &block) @custom_score ||= Query.new(&block) @value[:custom_score] = @value[:custom_score].update({:query => @custom_score.to_hash}) @value end |
#dis_max(options = {}, &block) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/tire/search/query.rb', line 71 def dis_max(={}, &block) @dis_max ||= DisMaxQuery.new() block.arity < 1 ? @dis_max.instance_eval(&block) : block.call(@dis_max) if block_given? @value[:dis_max] = @dis_max.to_hash @value end |
#filtered(&block) ⇒ Object
64 65 66 67 68 69 |
# File 'lib/tire/search/query.rb', line 64 def filtered(&block) @filtered = FilteredQuery.new block.arity < 1 ? @filtered.instance_eval(&block) : block.call(@filtered) if block_given? @value[:filtered] = @filtered.to_hash @value end |
#fuzzy(field, value, options = {}) ⇒ Object
52 53 54 55 |
# File 'lib/tire/search/query.rb', line 52 def fuzzy(field, value, ={}) query = { field => { :term => value }.update() } @value = { :fuzzy => query } end |
#ids(values, type) ⇒ Object
83 84 85 |
# File 'lib/tire/search/query.rb', line 83 def ids(values, type) @value = { :ids => { :values => values, :type => type } } end |
#prefix(field, value, options = {}) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/tire/search/query.rb', line 37 def prefix(field, value, ={}) if [:boost] @value = { :prefix => { field => { :prefix => value, :boost => [:boost] } } } else @value = { :prefix => { field => value } } end end |
#range(field, value) ⇒ Object
21 22 23 |
# File 'lib/tire/search/query.rb', line 21 def range(field, value) @value = { :range => { field => value } } end |
#string(value, options = {}) ⇒ Object
31 32 33 34 35 |
# File 'lib/tire/search/query.rb', line 31 def string(value, ={}) @value = { :query_string => { :query => value } } @value[:query_string].update() @value end |
#term(field, value, options = {}) ⇒ Object
10 11 12 13 |
# File 'lib/tire/search/query.rb', line 10 def term(field, value, ={}) query = { field => { :term => value }.update() } @value = { :term => query } end |
#terms(field, value, options = {}) ⇒ Object
15 16 17 18 19 |
# File 'lib/tire/search/query.rb', line 15 def terms(field, value, ={}) @value = { :terms => { field => value } } @value[:terms].update( { :minimum_match => [:minimum_match] } ) if [:minimum_match] @value end |
#text(field, value, options = {}) ⇒ Object
25 26 27 28 29 |
# File 'lib/tire/search/query.rb', line 25 def text(field, value, ={}) = { :query => value }.update() @value = { :text => { field => } } @value end |
#to_hash ⇒ Object
87 88 89 |
# File 'lib/tire/search/query.rb', line 87 def to_hash @value end |
#to_json ⇒ Object
91 92 93 |
# File 'lib/tire/search/query.rb', line 91 def to_json to_hash.to_json end |