forked from karmi/retire
/
query.rb
43 lines (34 loc) · 1.12 KB
/
query.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
module Tire
module Search
class Query
def initialize(&block)
self.instance_eval(&block) if block_given?
end
def term(field, value)
@value = { :term => { field => value } }
end
def terms(field, value, options={})
@value = { :terms => { field => value } }
@value[:terms].update( { :minimum_match => options[:minimum_match] } ) if options[:minimum_match]
@value
end
def string(value, options={})
@value = { :query_string => { :query => value } }
@value[:query_string].update( { :default_field => options[:default_field] } ) if options[:default_field]
@value[:query_string].update( { :default_operator => options[:default_operator] } ) if options[:default_operator]
# TODO: https://github.com/elasticsearch/elasticsearch/wiki/Query-String-Query
@value
end
def all
@value = { :match_all => {} }
@value
end
def ids(values, type)
@value = { :ids => { :values => values, :type => type } }
end
def to_json
@value.to_json
end
end
end
end