module ROM::Elasticsearch::ScrollMethods

Dataset's scoll methods

@see Dataset

@api public

Public Instance Methods

scroll(ttl) click to toggle source

Return dataset with :scroll set

@param [String] ttl

@return [Dataset]

@api public

# File lib/rom/elasticsearch/scroll_methods.rb, line 18
def scroll(ttl)
  params(scroll: ttl)
end
scroll_enumerator(client, response) click to toggle source

@api private

# File lib/rom/elasticsearch/scroll_methods.rb, line 23
def scroll_enumerator(client, response)
  Enumerator.new do |yielder|
    loop do
      hits = response.fetch("hits").fetch("hits")
      break if hits.empty?

      hits.each { |result| yielder.yield(result) }

      response = client.scroll(
        scroll_id: response.fetch("_scroll_id"),
        scroll: params[:scroll]
      )
    end
  end
end