class SearchSourceBuilder
A search source builder allowing to easily build search source.
Public Class Methods
new()
click to toggle source
# 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
Public Instance Methods
aggregations(agg_builder)
click to toggle source
sets aggregation
# 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()
click to toggle source
returns aggregation
# File lib/search_source_builder.rb, line 49 def aggregations_expr return @aggregations end
body()
click to toggle source
# 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)
click to toggle source
sets explain
# File lib/search_source_builder.rb, line 125 def explain explain @explain = explain return self end
explain_expr()
click to toggle source
returns explain
# File lib/search_source_builder.rb, line 121 def explain_expr return @explain end
from(from)
click to toggle source
sets from
# File lib/search_source_builder.rb, line 135 def from from @from = from return self end
from_expr()
click to toggle source
returns from
# File lib/search_source_builder.rb, line 131 def from_expr return @from end
min_score(min_score)
click to toggle source
sets min_score
# File lib/search_source_builder.rb, line 145 def min_score min_score @min_score = min_score return self end
min_score_expr()
click to toggle source
returns min_score
# File lib/search_source_builder.rb, line 141 def min_score_expr return @min_score end
query(query)
click to toggle source
sets query
# File lib/search_source_builder.rb, line 43 def query query @query = query return self end
query_expr()
click to toggle source
returns query
# File lib/search_source_builder.rb, line 39 def query_expr return @query end
script(script)
click to toggle source
sets script
# File lib/search_source_builder.rb, line 181 def script script @script = script return self end
script_expr()
click to toggle source
returns script
# File lib/search_source_builder.rb, line 187 def script_expr return @script end
size(size)
click to toggle source
sets size
# File lib/search_source_builder.rb, line 115 def size size @size = size return self end
size_expr()
click to toggle source
returns size
# File lib/search_source_builder.rb, line 111 def size_expr return @size end
sort(sort, reset: false)
click to toggle source
appends sort
# 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()
click to toggle source
returns sort
# File lib/search_source_builder.rb, line 63 def sort_expr return @sort end
source(source_field, reset: false)
click to toggle source
sets source_fields
# 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)
click to toggle source
sets source exclude fields
# 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()
click to toggle source
# File lib/search_source_builder.rb, line 90 def source_exclude_expr return [] unless @_source[:exclude].present? @_source[:exclude] end
source_expr()
click to toggle source
returns source_fields
# File lib/search_source_builder.rb, line 74 def source_expr return @source end
source_include(include_list)
click to toggle source
sets source include fields
# 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()
click to toggle source
returns source_fields
# File lib/search_source_builder.rb, line 85 def source_include_expr return [] unless @_source[:include].present? @_source[:include] end
terminate_after(terminate_after)
click to toggle source
sets terminate_after
# File lib/search_source_builder.rb, line 155 def terminate_after terminate_after @terminate_after = terminate_after return self end
terminate_after_expr()
click to toggle source
returns terminate_after
# File lib/search_source_builder.rb, line 151 def terminate_after_expr return @terminate_after end
timeout(timeout)
click to toggle source
sets timeout
# File lib/search_source_builder.rb, line 165 def timeout timeout @timeout = timeout return self end
timeout_expr()
click to toggle source
returns timeout
# File lib/search_source_builder.rb, line 161 def timeout_expr return @timeout end
version(version)
click to toggle source
sets version
# File lib/search_source_builder.rb, line 175 def version version @version = version return self end
version_expr()
click to toggle source
returns version
# File lib/search_source_builder.rb, line 171 def version_expr return @version end