module Elos::Repository::Adapter::Elos::Scanable
Public Instance Methods
_scan(batch_size = nil, index_name: read_alias_name, &block)
click to toggle source
# File lib/elos/repository/adapter/elos/scanable.rb, line 13 def _scan(batch_size = nil, index_name: read_alias_name, &block) batch_size ||= 100 scroll_id = client.search(index: index_name, type: type_name, search_type: :scan, scroll: '1h', body: { query: { match_all: {} }, size: batch_size })['_scroll_id'] while r = client.scroll(scroll: '1h', scroll_id: scroll_id) and (hits = r['hits']['hits']).present? do scroll_id = r['_scroll_id'] hits.each do |hit| block.(hit) end end end
scan(batch_size = nil, &block)
click to toggle source
# File lib/elos/repository/adapter/elos/scanable.rb, line 5 def scan(batch_size = nil, &block) _scan(batch_size) do |hit| block.(new(hit['_source'].merge(id: hit['_id'], _persisted: true))) end end