Class: Valkyrie::Persistence::Solr::Persister
- Inherits:
-
Object
- Object
- Valkyrie::Persistence::Solr::Persister
- Defined in:
- lib/valkyrie/persistence/solr/persister.rb
Overview
Persister for Solr MetadataAdapter.
Most methods are delegated to Repository
Instance Attribute Summary collapse
-
#adapter ⇒ Object
readonly
Returns the value of attribute adapter.
Instance Method Summary collapse
-
#delete(resource:) ⇒ Valkyrie::Resource
Deletes a Valkyrie Resource persisted into a Solr index.
-
#initialize(adapter:) ⇒ Persister
constructor
A new instance of Persister.
-
#repository(resources) ⇒ Valkyrie::Persistence::Solr::Repository
Constructs a Solr::Repository object for a set of Valkyrie Resources.
-
#save(resource:) ⇒ Valkyrie::Resource
Persists a Valkyrie Resource into a Solr index.
-
#save_all(resources:) ⇒ Valkyrie::Resource
Persists a set of Valkyrie Resources into a Solr index.
-
#wipe! ⇒ Object
Delete the Solr index of all Documents.
Constructor Details
#initialize(adapter:) ⇒ Persister
Returns a new instance of Persister.
13 14 15 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 13 def initialize(adapter:) @adapter = adapter end |
Instance Attribute Details
#adapter ⇒ Object (readonly)
Returns the value of attribute adapter.
8 9 10 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 8 def adapter @adapter end |
Instance Method Details
#delete(resource:) ⇒ Valkyrie::Resource
Deletes a Valkyrie Resource persisted into a Solr index
41 42 43 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 41 def delete(resource:) repository([resource]).delete.first end |
#repository(resources) ⇒ Valkyrie::Persistence::Solr::Repository
Constructs a Solr::Repository object for a set of Valkyrie Resources
54 55 56 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 54 def repository(resources) Valkyrie::Persistence::Solr::Repository.new(resources: resources, connection: connection, resource_factory: resource_factory) end |
#save(resource:) ⇒ Valkyrie::Resource
Fields are saved using Solr’s dynamic fields functionality. If the text has length > 1000, it is stored as *_tsim otherwise it’s stored as *_tsim, *_ssim, and *_tesim e.g., a field called ‘title’ would be stored as 3 solr fields:
'title_tsim'
'title_ssim'
'title_tesim'
Persists a Valkyrie Resource into a Solr index
27 28 29 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 27 def save(resource:) repository([resource]).persist.first end |
#save_all(resources:) ⇒ Valkyrie::Resource
Persists a set of Valkyrie Resources into a Solr index
34 35 36 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 34 def save_all(resources:) repository(resources).persist end |
#wipe! ⇒ Object
Delete the Solr index of all Documents
46 47 48 49 |
# File 'lib/valkyrie/persistence/solr/persister.rb', line 46 def wipe! connection.delete_by_query("*:*") connection.commit end |