class ActiveTriples::Solrizer::SolrService

Attributes

conn[R]

Public Class Methods

add(doc, params = {}) click to toggle source

@param [Hash] doc the document to index @param [Hash] params

:commit => commits immediately
:softCommit => commit to memory, but don't flush to disk
# File lib/active_triples/solrizer/solr_service.rb, line 130
def add(doc, params = {})
  SolrService.instance.conn.add(doc, params: params)
end
class_from_solr_document(hit, opts = {}) click to toggle source

Returns the best singular class for the solr object

# File lib/active_triples/solrizer/solr_service.rb, line 60
def class_from_solr_document(hit, opts = {})
  Deprecation.warn SolrService, "SolrService.class_from_solr_document is deprecated. Use QueryResultBuilder.class_from_solr_document instead. This will be removed in active-fedora 10.0"
  QueryResultBuilder.class_from_solr_document(hit, opts)
end
classes_from_solr_document(hit, opts = {}) click to toggle source

Returns all possible classes for the solr object

# File lib/active_triples/solrizer/solr_service.rb, line 54
def classes_from_solr_document(hit, opts = {})
  Deprecation.warn SolrService, "SolrService.classes_from_solr_document is deprecated. Use QueryResultBuilder.classes_from_solr_document instead. This will be removed in active-fedora 10.0"
  QueryResultBuilder.classes_from_solr_document(hit, opts)
end
commit() click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 134
def commit
  SolrService.instance.conn.commit
end
construct_query_for_ids(id_array) click to toggle source

Construct a solr query for a list of ids This is used to get a solr response based on the list of ids in an object's RELS-EXT relationhsips If the id_array is empty, defaults to a query of “id:NEVER_USE_THIS_ID”, which will return an empty solr response @param [Array] id_array the ids that you want included in the query

# File lib/active_triples/solrizer/solr_service.rb, line 69
def construct_query_for_ids(id_array)
  Deprecation.warn SolrService, "SolrService.construct_query_for_ids is deprecated. Use SolrQueryBuilder.construct_query_for_ids instead. This will be removed in active-fedora 10.0"
  SolrQueryBuilder.construct_query_for_ids(id_array)
end
construct_query_for_pids(id_array) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 74
def construct_query_for_pids(id_array)
  Deprecation.warn SolrService, "construct_query_for_pids is deprecated and will be removed in active-fedora 10.0"
  SolrQueryBuilder.construct_query_for_ids(id_array)
end
construct_query_for_rel(field_pairs, join_with = 'AND') click to toggle source

Create a query with a clause for each key, value @param [Hash, Array<Array<String>>] field_pairs key is the predicate, value is the target_uri @param [String] join_with ('AND') the value we're joining the clauses with @example

construct_query_for_rel [[:has_model, "info:fedora/afmodel:ComplexCollection"], [:has_model, "info:fedora/afmodel:ActiveFedora_Base"]], 'OR'
# => _query_:"{!raw f=has_model_ssim}info:fedora/afmodel:ComplexCollection" OR _query_:"{!raw f=has_model_ssim}info:fedora/afmodel:ActiveFedora_Base"

construct_query_for_rel [[Book.reflect_on_association(:library), "foo/bar/baz"]]
# File lib/active_triples/solrizer/solr_service.rb, line 100
def construct_query_for_rel(field_pairs, join_with = 'AND')
  Deprecation.warn SolrService, "SolrService.construct_query_for_rel is deprecated. Use SolrQueryBuilder.construct_query_for_rel instead. This will be removed in active-fedora 10.0"
  SolrQueryBuilder.construct_query_for_rel(field_pairs, join_with)
end
count(query, args={}) click to toggle source

Get the count of records that match the query @param [String] query a solr query @param [Hash] args arguments to pass through to `args' param of SolrService.query (note that :rows will be overwritten to 0) @return [Integer] number of records matching

# File lib/active_triples/solrizer/solr_service.rb, line 121
def count(query, args={})
  args = args.merge(:raw=>true, :rows=>0)
  SolrService.query(query, args)['response']['numFound'].to_i
end
delete(id) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 113
def delete(id)
  SolrService.instance.conn.delete_by_id(id, params: {'softCommit' => true})
end
instance() click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 27
def instance
  # Register Solr

  unless Thread.current[:solr_service]
    register(ActiveTriples::Solrizer.configuration.solr_uri)
  end

  raise SolrNotInitialized unless Thread.current[:solr_service]
  Thread.current[:solr_service]
end
lazy_reify_solr_results(solr_results, opts = {}) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 38
def lazy_reify_solr_results(solr_results, opts = {})
  Deprecation.warn SolrService, "SolrService.lazy_reify_solr_results is deprecated. Use QueryResultBuilder.lazy_reify_solr_results instead. This will be removed in active-fedora 10.0"
  QueryResultBuilder.lazy_reify_solr_results(solr_results, opts)
end
new(host, args) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 10
def initialize(host, args)
  host = ActiveTriples::Solrizer.configuration.solr_uri unless host
  args = {read_timeout: ActiveTriples::Solrizer.configuration.read_timeout,
          open_timeout: ActiveTriples::Solrizer.configuration.open_timeout}.merge(args.dup)
  args.merge!(url: host)
  @conn = RSolr.connect args
end
query(query, args={}) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 105
def query(query, args={})
  raw = args.delete(:raw)
  args = args.merge(:q=>query, :qt=>'standard')
  result = SolrService.instance.conn.get('select', :params=>args)
  return result if raw
  result['response']['docs']
end
raw_query(key, value) click to toggle source

Create a raw query clause suitable for sending to solr as an fq element @param [String] key @param [String] value

# File lib/active_triples/solrizer/solr_service.rb, line 82
def raw_query(key, value)
  Deprecation.warn SolrService, "SolrService.raw_query is deprecated. Use SolrQueryBuilder.raw_query instead. This will be removed in active-fedora 10.0"
  SolrQueryBuilder.raw_query(key, value)
end
register(host=nil, args={}) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 19
def register(host=nil, args={})
  Thread.current[:solr_service] = new(host, args)
end
reify_solr_result(hit, opts = {}) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 48
def reify_solr_result(hit, opts = {})
  Deprecation.warn SolrService, "SolrService.reify_solr_result is deprecated. Use QueryResultBuilder.reify_solr_result instead. This will be removed in active-fedora 10.0"
  QueryResultBuilder.reify_solr_result(hit, opts)
end
reify_solr_results(solr_results, opts = {}) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 43
def reify_solr_results(solr_results, opts = {})
  Deprecation.warn SolrService, "SolrService.reify_solr_results is deprecated. Use QueryResultBuilder.reify_solr_results instead. This will be removed in active-fedora 10.0"
  QueryResultBuilder.reify_solr_results(solr_results, opts)
end
reset!() click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 23
def reset!
  Thread.current[:solr_service] = nil
end
solr_name(*args) click to toggle source
# File lib/active_triples/solrizer/solr_service.rb, line 87
def solr_name(*args)
  Deprecation.warn SolrService, "SolrService.solr_name is deprecated. Use SolrQueryBuilder.solr_name instead. This will be removed in active-fedora 10.0"
  SolrQueryBuilder.solr_name(*args)
end