Class: Zelastic::Indexer
- Inherits:
-
Object
- Object
- Zelastic::Indexer
- Extended by:
- Forwardable
- Defined in:
- lib/zelastic/indexer.rb
Defined Under Namespace
Classes: IndexingError
Instance Method Summary collapse
- #delete_by_id(id) ⇒ Object
- #delete_by_ids(ids) ⇒ Object
- #delete_by_query(query) ⇒ Object
- #index_batch(batch, client: nil, index_name: nil, refresh: false) ⇒ Object
- #index_record(record, refresh: false) ⇒ Object
-
#initialize(config) ⇒ Indexer
constructor
A new instance of Indexer.
Constructor Details
#initialize(config) ⇒ Indexer
Returns a new instance of Indexer.
16 17 18 |
# File 'lib/zelastic/indexer.rb', line 16 def initialize(config) @config = config end |
Instance Method Details
#delete_by_id(id) ⇒ Object
37 38 39 |
# File 'lib/zelastic/indexer.rb', line 37 def delete_by_id(id) delete_by_ids([id]) end |
#delete_by_ids(ids) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/zelastic/indexer.rb', line 41 def delete_by_ids(ids) logger.info('ES: Deleting batch records') execute_bulk do |index_name| ids.map do |id| { delete: { _index: index_name, _id: id } } end end end |
#delete_by_query(query) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/zelastic/indexer.rb', line 51 def delete_by_query(query) logger.info('ES: Deleting batch records') config.clients.map do |client| client.delete_by_query(index: config.write_alias, body: { query: query }) end end |
#index_batch(batch, client: nil, index_name: nil, refresh: false) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/zelastic/indexer.rb', line 20 def index_batch(batch, client: nil, index_name: nil, refresh: false) version = current_version execute_bulk(client: client, index_name: index_name, refresh: refresh) do |index| batch.map do |record| index_command(index: index, version: version, record: record) end end end |
#index_record(record, refresh: false) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/zelastic/indexer.rb', line 29 def index_record(record, refresh: false) version = current_version execute_bulk(refresh: refresh) do |index_name| [index_command(index: index_name, version: version, record: record)] end end |