module DogBiscuits::IndexesCommon
Public Instance Methods
generate_solr_document()
click to toggle source
Calls superclass method
# File lib/dog_biscuits/indexers/concerns/indexes_common.rb, line 5 def generate_solr_document super.tap do |solr_doc| solr_doc_for_contributors(solr_doc) solr_doc_for_dates(solr_doc) do_local_indexing(solr_doc) end end
solr_doc_for_contributors(solr_doc)
click to toggle source
Index different contributor types (relators, eg. editor, advisor) into contributor Index the contributor type itself
# File lib/dog_biscuits/indexers/concerns/indexes_common.rb, line 17 def solr_doc_for_contributors(solr_doc) if respond_to? :contributors_to_index contributors_to_index.each do |v| labels = object.send(v).to_a # If there is anything in the solr_doc, add to it if solr_doc["contributor_combined_tesim"] solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_combined", :stored_searchable)].push(*labels).uniq! solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_combined", :facetable)].push(*labels).uniq! else solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_combined", :stored_searchable)] = labels solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_combined", :facetable)] = labels end labels.each do |_label| if solr_doc['contributor_type_sim'] solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_type", :facetable)] << v else solr_doc[ActiveFedora.index_field_mapper.solr_name("contributor_type", :facetable)] = [v] end end end end end
solr_doc_for_dates(solr_doc)
click to toggle source
Extract years from all date fields and index into 'date_range_sim'
# File lib/dog_biscuits/indexers/concerns/indexes_common.rb, line 41 def solr_doc_for_dates(solr_doc) DogBiscuits.config.date_properties.each do |d| next unless object.respond_to? d object.send(d).each do |dd| dd.to_s.scan(/\b\d{4}\b/).each do |year| if solr_doc['date_range_sim'] solr_doc['date_range_sim'] << year.to_i else solr_doc['date_range_sim'] = [year.to_i] end end end end end