Class: SearchSourceBuilder
- Inherits:
-
Object
- Object
- SearchSourceBuilder
- Includes:
- AttributesReader
- Defined in:
- lib/search_source_builder.rb
Overview
A search source builder allowing to easily build search source.
Instance Method Summary collapse
-
#aggregations(agg_builder) ⇒ Object
sets aggregation.
-
#aggregations_expr ⇒ Object
returns aggregation.
- #body ⇒ Object
-
#explain(explain) ⇒ Object
sets explain.
-
#explain_expr ⇒ Object
returns explain.
-
#from(from) ⇒ Object
sets from.
-
#from_expr ⇒ Object
returns from.
-
#initialize ⇒ SearchSourceBuilder
constructor
A new instance of SearchSourceBuilder.
-
#min_score(min_score) ⇒ Object
sets min_score.
-
#min_score_expr ⇒ Object
returns min_score.
-
#query(query) ⇒ Object
sets query.
-
#query_expr ⇒ Object
returns query.
-
#script(script) ⇒ Object
sets script.
-
#script_expr ⇒ Object
returns script.
-
#size(size) ⇒ Object
sets size.
-
#size_expr ⇒ Object
returns size.
-
#sort(sort, reset: false) ⇒ Object
appends sort.
-
#sort_expr ⇒ Object
returns sort.
-
#source(source_field, reset: false) ⇒ Object
sets source_fields.
-
#source_exclude(exclude_list) ⇒ Object
sets source exclude fields.
- #source_exclude_expr ⇒ Object
-
#source_expr ⇒ Object
returns source_fields.
-
#source_include(include_list) ⇒ Object
sets source include fields.
-
#source_include_expr ⇒ Object
returns source_fields.
-
#terminate_after(terminate_after) ⇒ Object
sets terminate_after.
-
#terminate_after_expr ⇒ Object
returns terminate_after.
-
#timeout(timeout) ⇒ Object
sets timeout.
-
#timeout_expr ⇒ Object
returns timeout.
-
#version(version) ⇒ Object
sets version.
-
#version_expr ⇒ Object
returns version.
Methods included from AttributesReader
Constructor Details
#initialize ⇒ SearchSourceBuilder
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_expr ⇒ Object
returns aggregation
49 50 51 |
# File 'lib/search_source_builder.rb', line 49 def aggregations_expr return @aggregations end |
#body ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
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_expr ⇒ Object
returns version
171 172 173 |
# File 'lib/search_source_builder.rb', line 171 def version_expr return @version end |