Class: BaseIndexer::MainIndexerEngine
- Inherits:
-
Object
- Object
- BaseIndexer::MainIndexerEngine
- Includes:
- DiscoveryIndexer
- Defined in:
- lib/base_indexer/main_indexer_engine.rb
Overview
It is responsible for performing the basic indexing steps, it includes reading the input from PURL server, getting collection names, mapping it to solr doc hash, and write it to SOLR core . It can also delete the object from all the registered
Instance Method Summary collapse
-
#delete(druid) ⇒ Object
It deletes an item defined by druid from all registered solr core.
-
#get_collection_names(collection_druids) ⇒ Hash
It converts collection_druids list to a hash with names.
-
#get_targets_hash_from_param(targets) ⇒ Hash
It converts targets array to targets hash.
-
#index(druid, targets = nil) ⇒ Object
It is the main indexing function.
- #read_mods(druid) ⇒ Object
- #read_purl(druid) ⇒ Object
Instance Method Details
#delete(druid) ⇒ Object
It deletes an item defined by druid from all registered solr core
53 54 55 56 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 53 def delete druid solr_targets_configs = BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash BaseIndexer.solr_writer_class_name.constantize.new.solr_delete_from_all( druid, solr_targets_configs) end |
#get_collection_names(collection_druids) ⇒ Hash
It converts collection_druids list to a hash with names. If the druid doesn’t have a collection name, it will be excluded from the hash
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 86 def get_collection_names collection_druids collection_names = {} unless collection_druids.nil? then collection_druids.each do |cdruid| cname = BaseIndexer::Collection.get_collection_name(cdruid) collection_names[cdruid] = cname unless cname.nil? end end collection_names end |
#get_targets_hash_from_param(targets) ⇒ Hash
It converts targets array to targets hash
72 73 74 75 76 77 78 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 72 def get_targets_hash_from_param(targets) targets_hash = {} targets.each do |target| targets_hash[target] = true end return targets_hash end |
#index(druid, targets = nil) ⇒ Object
It is the main indexing function
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 29 def index druid, targets=nil # Read input mods and purl purl_model = read_purl(druid) mods_model = read_mods(druid) collection_names = get_collection_names(purl_model.collection_druids) # Map the input to solr_doc solr_doc = BaseIndexer.mapper_class_name.constantize.new(druid, mods_model, purl_model, collection_names).map # Get target list targets_hash={} if targets.nil? or targets.length == 0 targets_hash = purl_model. else targets_hash = get_targets_hash_from_param(targets) end # Get SOLR configuration and write solr_targets_configs = BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash BaseIndexer.solr_writer_class_name.constantize.new.process( druid, solr_doc, targets_hash, solr_targets_configs) end |
#read_mods(druid) ⇒ Object
62 63 64 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 62 def read_mods druid return DiscoveryIndexer::InputXml::Modsxml.new(druid).load() end |
#read_purl(druid) ⇒ Object
58 59 60 |
# File 'lib/base_indexer/main_indexer_engine.rb', line 58 def read_purl druid return DiscoveryIndexer::InputXml::Purlxml.new(druid).load() end |