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.
20 21 22 |
# File 'lib/zelastic/indexer.rb', line 20 def initialize(config) @config = config end |
Instance Method Details
#delete_by_id(id) ⇒ Object
41 42 43 |
# File 'lib/zelastic/indexer.rb', line 41 def delete_by_id(id) delete_by_ids([id]) end |
#delete_by_ids(ids) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/zelastic/indexer.rb', line 45 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
55 56 57 58 59 60 61 |
# File 'lib/zelastic/indexer.rb', line 55 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: }) end end |
#index_batch(batch, client: nil, index_name: nil, refresh: false) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/zelastic/indexer.rb', line 24 def index_batch(batch, client: nil, index_name: nil, refresh: false) version = current_version execute_bulk(client:, index_name:, refresh:) do |index| batch.map do |record| index_command(index:, version:, record:) end end end |
#index_record(record, refresh: false) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/zelastic/indexer.rb', line 33 def index_record(record, refresh: false) version = current_version execute_bulk(refresh:) do |index_name| [index_command(index: index_name, version:, record:)] end end |