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
# 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
end

Instance Method Details

#aggregations(agg_builder) ⇒ Object

sets aggregation



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

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



46
47
48
# File 'lib/search_source_builder.rb', line 46

def aggregations_expr
  return @aggregations
end

#bodyObject



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

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
  return body.compact
end

#explain(explain) ⇒ Object

sets explain



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

def explain explain
  @explain = explain
  return self
end

#explain_exprObject

returns explain



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

def explain_expr
  return @explain
end

#from(from) ⇒ Object

sets from



106
107
108
109
# File 'lib/search_source_builder.rb', line 106

def from from
  @from = from
  return self
end

#from_exprObject

returns from



102
103
104
# File 'lib/search_source_builder.rb', line 102

def from_expr
  return @from
end

#min_score(min_score) ⇒ Object

sets min_score



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

def min_score min_score
  @min_score = min_score
  return self
end

#min_score_exprObject

returns min_score



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

def min_score_expr
  return @min_score
end

#query(query) ⇒ Object

sets query



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

def query query
  @query = query
  return self
end

#query_exprObject

returns query



36
37
38
# File 'lib/search_source_builder.rb', line 36

def query_expr
  return @query
end

#size(size) ⇒ Object

sets size



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

def size size
  @size = size
  return self
end

#size_exprObject

returns size



82
83
84
# File 'lib/search_source_builder.rb', line 82

def size_expr
  return @size
end

#sort(sort, reset: false) ⇒ Object

appends sort



64
65
66
67
68
# File 'lib/search_source_builder.rb', line 64

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

#sort_exprObject

returns sort



60
61
62
# File 'lib/search_source_builder.rb', line 60

def sort_expr
  return @sort
end

#source(source_field, reset: false) ⇒ Object

sets source_fields



75
76
77
78
79
# File 'lib/search_source_builder.rb', line 75

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



71
72
73
# File 'lib/search_source_builder.rb', line 71

def source_expr
  return @source
end

#terminate_after(terminate_after) ⇒ Object

sets terminate_after



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

def terminate_after terminate_after
  @terminate_after = terminate_after
  return self
end

#terminate_after_exprObject

returns terminate_after



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

def terminate_after_expr
  return @terminate_after
end

#timeout(timeout) ⇒ Object

sets timeout



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

def timeout timeout
  @timeout = timeout
  return self
end

#timeout_exprObject

returns timeout



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

def timeout_expr
  return @timeout
end

#version(version) ⇒ Object

sets version



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

def version version
  @version = version
  return self
end

#version_exprObject

returns version



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

def version_expr
  return @version
end