class BaseIndexer::Solr::Writer

Performs writes to solr client based upon true and false release flags

Public Instance Methods

get_connector_for_target(solr_target) click to toggle source
# File lib/base_indexer/solr/writer.rb, line 26
def get_connector_for_target(solr_target)
  solr_connector_targets[solr_target]
end
process(id, index_doc, targets) click to toggle source
# File lib/base_indexer/solr/writer.rb, line 10
def process(id, index_doc, targets)
  index_targets = targets.select { |_, b| b }.keys
  delete_targets = targets.reject { |_, b| b }.keys

  # get targets with true
  solr_index_client(id, index_doc, index_targets)
  # get targets with false
  solr_delete_client(id, delete_targets)
end
solr_delete_from_all(id) click to toggle source
# File lib/base_indexer/solr/writer.rb, line 20
def solr_delete_from_all(id)
  # Get a list of all registered targets
  targets = solr_targets_configs.keys
  solr_delete_client(id, targets)
end

Private Instance Methods

solr_connector_targets() click to toggle source
# File lib/base_indexer/solr/writer.rb, line 46
def solr_connector_targets
  @solr_connector_targets ||= begin
    solr_targets_configs.transform_values do |config|
      RSolr.connect(config.deep_symbolize_keys)
    end
  end
end
solr_delete_client(id, targets) click to toggle source
# File lib/base_indexer/solr/writer.rb, line 39
def solr_delete_client(id, targets)
  targets.each do |solr_target|
    solr_connector = get_connector_for_target(solr_target)
    Client.delete(id, solr_connector) unless solr_connector.nil?
  end
end
solr_index_client(id, index_doc, targets) click to toggle source
# File lib/base_indexer/solr/writer.rb, line 32
def solr_index_client(id, index_doc, targets)
  targets.each do |solr_target|
    solr_connector = get_connector_for_target(solr_target)
    Client.add(id, index_doc, solr_connector) unless solr_connector.nil?
  end
end
solr_targets_configs() click to toggle source
# File lib/base_indexer/solr/writer.rb, line 54
def solr_targets_configs
  Settings.SOLR_TARGETS.to_hash.stringify_keys
end