Class: SearchSourceBuilder

Inherits:
Object
  • Object
show all
Includes:
AttributesReader
Defined in:
lib/search_source_builder.rb

Overview

A search source builder allowing to easily build search source.

Instance Method Summary collapse

Methods included from AttributesReader

#attributes

Constructor Details

#initializeSearchSourceBuilder

Returns a new instance of SearchSourceBuilder.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/search_source_builder.rb', line 5

def initialize
  @query = nil
  @aggregations = []
  @sort = []
  @source = []
  @size = nil
  @explain = nil
  @from = nil
  @min_score = nil
  @terminate_after = nil
  @timeout = nil
  @version = nil
  @script = nil
end

Instance Method Details

#aggregations(agg_builder) ⇒ Object

sets aggregation



52
53
54
55
56
57
58
59
# File 'lib/search_source_builder.rb', line 52

def aggregations agg_builder
  if agg_builder.is_a?(Array)
    @aggregations += agg_builder
  else
    @aggregations.append(agg_builder)
  end
  return self
end

#aggregations_exprObject

returns aggregation



48
49
50
# File 'lib/search_source_builder.rb', line 48

def aggregations_expr
  return @aggregations
end

#bodyObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/search_source_builder.rb', line 20

def body
  body = {}
  body[:query] = @query.query
  body[:aggregations] = @aggregations.map{|agg| agg.query}.reduce({}, :merge) if @aggregations.present?
  body[:sort] = @sort.map{|sort_object| sort_object.query} if @sort.present?
  body[:_source] = @source
  body[:size] = @size
  body[:explain] = @explain
  body[:from] = @from
  body[:min_score] = @min_score
  body[:terminate_after] = @terminate_after
  body[:timeout] = @timeout
  body[:version] = @version
  body[:script] = @script.settings if @script.present?
  return body.compact
end

#explain(explain) ⇒ Object

sets explain



98
99
100
101
# File 'lib/search_source_builder.rb', line 98

def explain explain
  @explain = explain
  return self
end

#explain_exprObject

returns explain



94
95
96
# File 'lib/search_source_builder.rb', line 94

def explain_expr
  return @explain
end

#from(from) ⇒ Object

sets from



108
109
110
111
# File 'lib/search_source_builder.rb', line 108

def from from
  @from = from
  return self
end

#from_exprObject

returns from



104
105
106
# File 'lib/search_source_builder.rb', line 104

def from_expr
  return @from
end

#min_score(min_score) ⇒ Object

sets min_score



118
119
120
121
# File 'lib/search_source_builder.rb', line 118

def min_score min_score
  @min_score = min_score
  return self
end

#min_score_exprObject

returns min_score



114
115
116
# File 'lib/search_source_builder.rb', line 114

def min_score_expr
  return @min_score
end

#query(query) ⇒ Object

sets query



42
43
44
45
# File 'lib/search_source_builder.rb', line 42

def query query
  @query = query
  return self
end

#query_exprObject

returns query



38
39
40
# File 'lib/search_source_builder.rb', line 38

def query_expr
  return @query
end

#script(script) ⇒ Object

sets script



154
155
156
157
# File 'lib/search_source_builder.rb', line 154

def script script
  @script = script
  return self
end

#script_exprObject

returns script



160
161
162
# File 'lib/search_source_builder.rb', line 160

def script_expr
  return @script
end

#size(size) ⇒ Object

sets size



88
89
90
91
# File 'lib/search_source_builder.rb', line 88

def size size
  @size = size
  return self
end

#size_exprObject

returns size



84
85
86
# File 'lib/search_source_builder.rb', line 84

def size_expr
  return @size
end

#sort(sort, reset: false) ⇒ Object

appends sort



66
67
68
69
70
# File 'lib/search_source_builder.rb', line 66

def sort sort, reset: false
  @sort = [] if reset
  sort.is_a?(Array) ? @sort+= sort : @sort.append(sort)
  return self
end

#sort_exprObject

returns sort



62
63
64
# File 'lib/search_source_builder.rb', line 62

def sort_expr
  return @sort
end

#source(source_field, reset: false) ⇒ Object

sets source_fields



77
78
79
80
81
# File 'lib/search_source_builder.rb', line 77

def source source_field, reset: false
  @source = [] if reset
  source_field.is_a?(Array) ? @source+= source_field : @source.append(source_field)
  return self
end

#source_exprObject

returns source_fields



73
74
75
# File 'lib/search_source_builder.rb', line 73

def source_expr
  return @source
end

#terminate_after(terminate_after) ⇒ Object

sets terminate_after



128
129
130
131
# File 'lib/search_source_builder.rb', line 128

def terminate_after terminate_after
  @terminate_after = terminate_after
  return self
end

#terminate_after_exprObject

returns terminate_after



124
125
126
# File 'lib/search_source_builder.rb', line 124

def terminate_after_expr
  return @terminate_after
end

#timeout(timeout) ⇒ Object

sets timeout



138
139
140
141
# File 'lib/search_source_builder.rb', line 138

def timeout timeout
  @timeout = timeout
  return self
end

#timeout_exprObject

returns timeout



134
135
136
# File 'lib/search_source_builder.rb', line 134

def timeout_expr
  return @timeout
end

#version(version) ⇒ Object

sets version



148
149
150
151
# File 'lib/search_source_builder.rb', line 148

def version version
  @version = version
  return self
end

#version_exprObject

returns version



144
145
146
# File 'lib/search_source_builder.rb', line 144

def version_expr
  return @version
end