diff --git a/app/parsers/bulkrax/parser_export_record_set.rb b/app/parsers/bulkrax/parser_export_record_set.rb index 3e57a34d5..d9b295f14 100644 --- a/app/parsers/bulkrax/parser_export_record_set.rb +++ b/app/parsers/bulkrax/parser_export_record_set.rb @@ -113,14 +113,14 @@ def each # # @see #file_sets def candidate_file_set_ids - @candidate_file_set_ids ||= works.flat_map { |work| work.fetch("#{Bulkrax.file_model_class.to_s.underscore}_ids_ssim", []) } + @candidate_file_set_ids ||= works.flat_map { |work| work.fetch(Bulkrax.solr_key_for_member_file_ids, []) } end # @note Specifically not memoizing this so we can merge values without changing the object. # # No sense attempting to query for more than the limit. def query_kwargs - { fl: "id,#{Bulkrax.file_model_class.to_s.underscore}_ids_ssim", method: :post, rows: row_limit } + { fl: "id,#{Bulkrax.solr_key_for_member_file_ids}", method: :post, rows: row_limit } end # If we have a limit, we need not query beyond that limit diff --git a/lib/bulkrax.rb b/lib/bulkrax.rb index f485a5923..db860311c 100644 --- a/lib/bulkrax.rb +++ b/lib/bulkrax.rb @@ -44,6 +44,21 @@ class Configuration # @param adapter [Class] attr_writer :persistence_adapter + ## + # @param [String] + attr_writer :solr_key_for_member_file_ids + + ## + # @return [String] + # @see https://github.com/samvera/hyrax/pull/6513 + def solr_key_for_member_file_ids + return @solr_key_for_member_file_ids if @solr_key_for_member_file_ids.present? + + return "member_ids_ssim" if defined?(Hyrax) + + "#{file_model_class.name.to_s.underscore}_ids_ssim" + end + ## # @param coercer [#call] # @see Bulkrax::FactoryClassFinder @@ -157,6 +172,8 @@ def config :reserved_properties=, :server_name, :server_name=, + :solr_key_for_member_file_ids, + :solr_key_for_member_file_ids=, :use_locking, :use_locking=, :use_locking? diff --git a/spec/parsers/bulkrax/parser_export_record_set_spec.rb b/spec/parsers/bulkrax/parser_export_record_set_spec.rb index 755a88137..4f6e2cb98 100644 --- a/spec/parsers/bulkrax/parser_export_record_set_spec.rb +++ b/spec/parsers/bulkrax/parser_export_record_set_spec.rb @@ -61,8 +61,8 @@ RSpec.describe klass do let(:works) do [ - SolrDocument.new(id: 1, file_set_ids_ssim: ["a", "b", "c"]), - SolrDocument.new(id: 2, file_set_ids_ssim: ["d", "e", "f"]) + SolrDocument.new(id: 1, member_ids_ssim: ["a", "b", "c"]), + SolrDocument.new(id: 2, member_ids_ssim: ["d", "e", "f"]) ] end @@ -132,7 +132,7 @@ [works[1].id, parser.entry_class], [collections[0].id, parser.collection_entry_class], [collections[1].id, parser.collection_entry_class], - [works[0].fetch("file_set_ids_ssim").first, parser.file_set_entry_class] + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids).first, parser.file_set_entry_class] ) end end @@ -147,12 +147,12 @@ [works[1].id, parser.entry_class], [collections[0].id, parser.collection_entry_class], [collections[1].id, parser.collection_entry_class], - [works[0].fetch("file_set_ids_ssim")[0], parser.file_set_entry_class], - [works[0].fetch("file_set_ids_ssim")[1], parser.file_set_entry_class], - [works[0].fetch("file_set_ids_ssim")[2], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[0], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[1], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[2], parser.file_set_entry_class] + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[0], parser.file_set_entry_class], + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[1], parser.file_set_entry_class], + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[2], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[0], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[1], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[2], parser.file_set_entry_class] ) end end @@ -167,12 +167,12 @@ [works[1].id, parser.entry_class], [collections[0].id, parser.collection_entry_class], [collections[1].id, parser.collection_entry_class], - [works[0].fetch("file_set_ids_ssim")[0], parser.file_set_entry_class], - [works[0].fetch("file_set_ids_ssim")[1], parser.file_set_entry_class], - [works[0].fetch("file_set_ids_ssim")[2], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[0], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[1], parser.file_set_entry_class], - [works[1].fetch("file_set_ids_ssim")[2], parser.file_set_entry_class] + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[0], parser.file_set_entry_class], + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[1], parser.file_set_entry_class], + [works[0].fetch(Bulkrax.solr_key_for_member_file_ids)[2], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[0], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[1], parser.file_set_entry_class], + [works[1].fetch(Bulkrax.solr_key_for_member_file_ids)[2], parser.file_set_entry_class] ) end end