class Elastic::Nodes::Search

Attributes

offset[RW]
query[RW]

Public Class Methods

build(_query) click to toggle source
# File lib/elastic/nodes/search.rb, line 8
def self.build(_query)
  new.tap { |n| n.query = _query }
end

Public Instance Methods

clone() click to toggle source
# File lib/elastic/nodes/search.rb, line 25
def clone
  prepare_clone(super, @query.clone)
end
handle_result(_raw, _formatter) click to toggle source
# File lib/elastic/nodes/search.rb, line 33
def handle_result(_raw, _formatter)
  Elastic::Results::Root.new(
    _raw['hits'] ? prepare_hits(_raw['hits']['hits'], _formatter) : [],
    _raw['hits'] ? _raw['hits']['total'] : 0,
    _raw['aggregations'] ? load_aggs_results(_raw['aggregations'], _formatter) : {}
  )
end
render(_options = {}) click to toggle source
# File lib/elastic/nodes/search.rb, line 17
def render(_options = {})
  { "query" => @query.render(_options) }.tap do |hash|
    hash["from"] = @offset if offset && offset > 0
    render_hit_options(hash)
    render_aggs(hash, _options)
  end
end
simplify() click to toggle source
# File lib/elastic/nodes/search.rb, line 29
def simplify
  prepare_clone(super, @query.simplify)
end
traverse(&_block) click to toggle source
# File lib/elastic/nodes/search.rb, line 12
def traverse(&_block)
  super
  @query.traverse(&_block)
end

Private Instance Methods

prepare_clone(_clone, _query) click to toggle source
# File lib/elastic/nodes/search.rb, line 43
def prepare_clone(_clone, _query)
  _clone.query = _query
  _clone.offset = @offset
  _clone
end