Sha256: 19f2ed04c8cdd3b91ebd02ced6a4d5972f16f535c9deb4eb69fccefb89b7ca44
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module Elastic::Commands class ImportIndexDocuments < Elastic::Support::Command.new( :index, collection: nil, cache_size: 10000, verbose: false ) def perform if collection.present? import_collection else targets.each { |target| import_target(target) } end flush end private def import_collection main_target.collect_for(collection, middleware_options) { |obj| queue obj } end def import_target(_target) _target.collect_all(middleware_options) { |obj| queue obj } end def cache @cache ||= [] end def queue(_object) cache << render_for_es(_object) flush if cache.length >= cache_size end def flush unless cache.empty? index.adaptor.bulk_index(cache) log_flush(cache.size) if verbose cache.clear end end def log_flush(_size) @total ||= 0 @total += _size Elastic::Configuration.logger.info "Imported #{@total} documents" end def render_for_es(_object) index.new(_object).as_es_document end def main_target index.definition.main_target end def targets index.definition.targets end def middleware_options index.definition.middleware_options end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
elastic-rails-0.5.0 | lib/elastic/commands/import_index_documents.rb |