class Geoloader::Services::Solr
Attributes
resource[R]
Public Class Methods
new()
click to toggle source
Initialize the API wrapper.
# File lib/geoloader/services/solr.rb, line 14 def initialize @resource = RSolr::Ext.connect(:url => Geoloader.config.solr.url) end
Public Instance Methods
create_document(asset)
click to toggle source
Add a new document to the index.
@param [Geoloader::Asset] asset
# File lib/geoloader/services/solr.rb, line 23 def create_document(asset) @resource.add(asset.solr_document) @resource.commit end
delete_by_workspace(workspace)
click to toggle source
Delete all documents in a workspace.
@param [String] workspace
# File lib/geoloader/services/solr.rb, line 54 def delete_by_workspace(workspace) @resource.delete_by_query("WorkspaceName:#{workspace}") @resource.commit end
get_workspace_counts()
click to toggle source
Count the number of documents in each workspace.
# File lib/geoloader/services/solr.rb, line 31 def get_workspace_counts workspaces = [] # Select all documents, 0 rows, faceting on workspace. query = { :queries => "*:*", :facets => { :fields => "WorkspaceName" }, :rows => 0 } # Flatted out the counts. @resource.find(query).facets.each do |facet| facet.items.each do |item| workspaces << [item.value, item.hits] end end workspaces end