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
19
# File 'lib/search_source_builder.rb', line 5

def initialize
  @query = nil
  @aggregations = []
  @sort = []
  @source = []
  @_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



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

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



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

def aggregations_expr
  return @aggregations
end

#bodyObject



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

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.presence || @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



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

def explain explain
  @explain = explain
  return self
end

#explain_exprObject

returns explain



121
122
123
# File 'lib/search_source_builder.rb', line 121

def explain_expr
  return @explain
end

#from(from) ⇒ Object

sets from



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

def from from
  @from = from
  return self
end

#from_exprObject

returns from



131
132
133
# File 'lib/search_source_builder.rb', line 131

def from_expr
  return @from
end

#min_score(min_score) ⇒ Object

sets min_score



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

def min_score min_score
  @min_score = min_score
  return self
end

#min_score_exprObject

returns min_score



141
142
143
# File 'lib/search_source_builder.rb', line 141

def min_score_expr
  return @min_score
end

#query(query) ⇒ Object

sets query



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

def query query
  @query = query
  return self
end

#query_exprObject

returns query



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

def query_expr
  return @query
end

#script(script) ⇒ Object

sets script



181
182
183
184
# File 'lib/search_source_builder.rb', line 181

def script script
  @script = script
  return self
end

#script_exprObject

returns script



187
188
189
# File 'lib/search_source_builder.rb', line 187

def script_expr
  return @script
end

#size(size) ⇒ Object

sets size



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

def size size
  @size = size
  return self
end

#size_exprObject

returns size



111
112
113
# File 'lib/search_source_builder.rb', line 111

def size_expr
  return @size
end

#sort(sort, reset: false) ⇒ Object

appends sort



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

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

#sort_exprObject

returns sort



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

def sort_expr
  return @sort
end

#source(source_field, reset: false) ⇒ Object

sets source_fields



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

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_exclude(exclude_list) ⇒ Object

sets source exclude fields



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

def source_exclude(exclude_list)
  @_source[:exclude] = [] if @_source[:exclude].blank?
  exclude_list.is_a?(Array) ? (@_source[:exclude] += exclude_list) : @_source[:exclude].append(exclude_list)
  self
end

#source_exclude_exprObject



90
91
92
93
# File 'lib/search_source_builder.rb', line 90

def source_exclude_expr
  return [] unless @_source[:exclude].present?
  @_source[:exclude]
end

#source_exprObject

returns source_fields



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

def source_expr
  return @source
end

#source_include(include_list) ⇒ Object

sets source include fields



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

def source_include(include_list)
  @_source[:include] = [] if @_source[:include].blank?
  include_list.is_a?(Array) ? (@_source[:include] += include_list) : @_source[:include].append(include_list)
  self
end

#source_include_exprObject

returns source_fields



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

def source_include_expr
  return [] unless @_source[:include].present?
  @_source[:include]
end

#terminate_after(terminate_after) ⇒ Object

sets terminate_after



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

def terminate_after terminate_after
  @terminate_after = terminate_after
  return self
end

#terminate_after_exprObject

returns terminate_after



151
152
153
# File 'lib/search_source_builder.rb', line 151

def terminate_after_expr
  return @terminate_after
end

#timeout(timeout) ⇒ Object

sets timeout



165
166
167
168
# File 'lib/search_source_builder.rb', line 165

def timeout timeout
  @timeout = timeout
  return self
end

#timeout_exprObject

returns timeout



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

def timeout_expr
  return @timeout
end

#version(version) ⇒ Object

sets version



175
176
177
178
# File 'lib/search_source_builder.rb', line 175

def version version
  @version = version
  return self
end

#version_exprObject

returns version



171
172
173
# File 'lib/search_source_builder.rb', line 171

def version_expr
  return @version
end