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