132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/ej/core.rb', line 132
def bulk(timestamp_key, type, add_timestamp, id_keys, index, data)
template = id_keys.map { |key| '%s' }.join('_') unless id_keys.nil?
bulk_message = []
data.each do |record|
if timestamp_key.nil?
timestamp = Time.now.to_datetime.to_s
else
timestamp = record[timestamp_key].to_time.to_datetime.to_s
end
record.merge!('@timestamp' => timestamp) if add_timestamp
meta = { index: { _index: index, _type: type } }
meta[:index][:_id] = Util.generate_id(template, record, id_keys) unless id_keys.nil?
bulk_message << meta
bulk_message << record
end
connect_with_retry { @client.bulk body: bulk_message unless bulk_message.empty? }
end
|