class ActiveFedora::SolrService
def add(doc, params = {})
-
params
(Hash
) -- -
doc
(Hash
) -- the document to index, or an array of docs
def add(doc, params = {}) SolrService.instance.conn.add(doc, params: params) end
def commit
def commit SolrService.instance.conn.commit end
def conn
def conn @conn ||= RSolr.connect @options end
def count(query, args = {})
-
(Integer)
- number of records matching
Parameters:
-
args
(Hash
) -- arguments to pass through to `args' param of SolrService.query (note that :rows will be overwritten to 0) -
query
(String
) -- a solr query
def count(query, args = {}) args = args.merge(rows: 0) SolrService.get(query, args)['response']['numFound'].to_i end
def delete(id)
def delete(id) SolrService.instance.conn.delete_by_id(id, params: { 'softCommit' => true }) end
def get(query, args = {})
def get(query, args = {}) args = args.merge(q: query, qt: 'standard') SolrService.instance.conn.get(select_path, params: args) end
def initialize(options = {})
def initialize(options = {}) @options = { timeout: 120, open_timeout: 120, url: 'http://localhost:8080/solr' }.merge(options) end
def instance
def instance # Register Solr register(ActiveFedora.solr_config) unless ActiveFedora::RuntimeRegistry.solr_service ActiveFedora::RuntimeRegistry.solr_service end
def post(query, args = {})
def post(query, args = {}) args = args.merge(q: query, qt: 'standard') SolrService.instance.conn.post(select_path, data: args) end
def query(query, args = {})
def query(query, args = {}) Base.logger.warn "Calling ActiveFedora::SolrService.get without passing an explicit value for ':rows' is not recommended. You will end up with Solr's default (usually set to 10)\nCalled by #{caller[0]}" unless args.key?(:rows) method = args.delete(:method) || :get result = case method when :get get(query, args) when :post post(query, args) else raise "Unsupported HTTP method for querying SolrService (#{method.inspect})" end result['response']['docs'].map do |doc| ActiveFedora::SolrHit.new(doc) end end
def register(options = {})
-
options
(Hash
) --
def register(options = {}) ActiveFedora::RuntimeRegistry.solr_service = new(options) end
def reset!
def reset! ActiveFedora::RuntimeRegistry.solr_service = nil end
def select_path
def select_path ActiveFedora.solr_config.fetch(:select_path, 'select') end