class EsClient::ActiveRecord::Adapter
Attributes
document_type[R]
index[R]
index_name[R]
mapping[R]
settings[R]
Public Class Methods
new(model)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 6 def initialize(model) @model = model end
Public Instance Methods
destroy_document(id)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 58 def destroy_document(id) index.destroy_document(document_type, id) end
find(id)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 62 def find(id) if id.is_a?(Array) query = {query: {ids: {values: id, type: document_type}}, size: id.length} index.search(query, type: document_type) else index.find(document_type, id) end end
import(records)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 71 def import(records) index.bulk :index, document_type, records.map(&:as_indexed_json) end
save_document(record)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 48 def save_document(record) index.save_document(document_type, record.id, record.as_indexed_json) end
search(query, options={})
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 75 def search(query, options={}) options[:type] = document_type index.search(query, options) end
update_document(record, additional_doc=nil)
click to toggle source
# File lib/es_client/active_record/adapter.rb, line 52 def update_document(record, additional_doc=nil) doc = record.changes.map { |k, v| [k, v.last] }.to_h doc.deep_merge!(additional_doc) if additional_doc index.update_document(document_type, record.id, doc) end