class GeoHydra::Solr

API for uploading Solr documents

Public Class Methods

new(url) click to toggle source

@param [String] url to solr server

# File lib/geohydra/solr.rb, line 11
def initialize(url)
  @solr = url.nil? ? nil : RSolr.connect(:url => url)
  ap @solr
  @geo_metadata = []
end

Public Instance Methods

add(xml) click to toggle source
# File lib/geohydra/solr.rb, line 17
def add(xml)
  if xml.is_a? Dor::GeoMetadataDS
    @geo_metadata << xml
  else
    @geo_metadata << Dor::GeoMetadataDS.from_xml(xml)
  end
end
commit() click to toggle source
# File lib/geohydra/solr.rb, line 40
def commit
  @solr.commit
end
delete_all() click to toggle source
# File lib/geohydra/solr.rb, line 44
def delete_all
  @solr.delete_by_query '*:*'
  commit
end
reset() click to toggle source
# File lib/geohydra/solr.rb, line 36
def reset
  @geo_metadata = []
end
upload(optimize = false) click to toggle source
# File lib/geohydra/solr.rb, line 25
def upload(optimize = false)
  @geo_metadata.each do |ds|
    unless ds.nil?
      puts "Uploading #{ds.title}"
      @solr.add ds.to_solr
    end
  end
  commit
  @solr.optimize if optimize
end