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