lib/ddr/models/indexing.rb in ddr-models-2.0.1 vs lib/ddr/models/indexing.rb in ddr-models-2.1.0.rc1
- old
+ new
@@ -1,55 +1,63 @@
module Ddr
module Models
module Indexing
- include Ddr::IndexFields
+ include Ddr::Index::Fields
def to_solr(solr_doc=Hash.new, opts={})
solr_doc = super(solr_doc, opts)
solr_doc.merge index_fields
end
def index_fields
fields = {
- TITLE => title_display,
- INTERNAL_URI => internal_uri,
- IDENTIFIER_ALL => all_identifiers,
- WORKFLOW_STATE => workflow_state,
- LOCAL_ID => local_id,
+ ACCESS_ROLE => roles.to_json,
ADMIN_SET => admin_set,
+ BOX_NUMBER_FACET => desc_metadata_values('box_number'),
+ CREATOR_FACET => creator,
+ DATE_FACET => date,
+ DATE_SORT => date_sort,
+ DEPOSITOR => depositor,
DISPLAY_FORMAT => display_format,
+ DOI => adminMetadata.doi,
+ IDENTIFIER_ALL => all_identifiers,
+ INTERNAL_URI => internal_uri,
+ LICENSE => license,
+ LICENSE_DESCRIPTION => rightsMetadata.license.description.first,
+ LICENSE_TITLE => rightsMetadata.license.title.first,
+ LICENSE_URL => rightsMetadata.license.url.first,
+ LOCAL_ID => local_id,
PERMANENT_ID => permanent_id,
PERMANENT_URL => permanent_url,
- ACCESS_ROLE => roles.to_json,
- RESOURCE_ROLE => roles.in_resource_scope.agents,
POLICY_ROLE => roles.in_policy_scope.agents,
- CREATOR_FACET => creator,
- DATE_FACET => date,
- DATE_SORT => date_sort,
- RESEARCH_HELP_CONTACT => research_help_contact
+ PUBLISHER_FACET => publisher,
+ RESEARCH_HELP_CONTACT => research_help_contact,
+ RESOURCE_ROLE => roles.in_resource_scope.agents,
+ SERIES_FACET => desc_metadata_values('series'),
+ SPATIAL_FACET => desc_metadata_values('spatial'),
+ TITLE => title_display,
+ TYPE_FACET => type,
+ WORKFLOW_STATE => workflow_state,
+ YEAR_FACET => year_facet,
}
if respond_to? :fixity_checks
last_fixity_check = fixity_checks.last
fields.merge!(last_fixity_check.to_solr) if last_fixity_check
end
if respond_to? :virus_checks
last_virus_check = virus_checks.last
fields.merge!(last_virus_check.to_solr) if last_virus_check
end
- if respond_to? :license
- fields[LICENSE_DESCRIPTION] = license_description
- fields[LICENSE_TITLE] = license_title
- fields[LICENSE_URL] = license_url
- end
if has_content?
fields[CONTENT_CONTROL_GROUP] = content.controlGroup
fields[CONTENT_SIZE] = content_size
fields[CONTENT_SIZE_HUMAN] = content_human_size
fields[MEDIA_TYPE] = content_type
fields[MEDIA_MAJOR_TYPE] = content_major_type
fields[MEDIA_SUB_TYPE] = content_sub_type
+ fields.merge! techmd.index_fields
end
if has_multires_image?
fields[MULTIRES_IMAGE_FILE_PATH] = multires_image_file_path
end
if has_struct_metadata?
@@ -60,13 +68,13 @@
end
if is_a? Component
fields[COLLECTION_URI] = collection_uri
end
if is_a? Collection
- fields[DEFAULT_LICENSE_DESCRIPTION] = default_license_description
- fields[DEFAULT_LICENSE_TITLE] = default_license_title
- fields[DEFAULT_LICENSE_URL] = default_license_url
+ fields[DEFAULT_LICENSE_DESCRIPTION] = defaultRights.license.description.first
+ fields[DEFAULT_LICENSE_TITLE] = defaultRights.license.title.first
+ fields[DEFAULT_LICENSE_URL] = defaultRights.license.url.first
fields[ADMIN_SET_FACET] = admin_set_facet
fields[COLLECTION_FACET] = collection_facet
end
if is_a? Item
fields[ADMIN_SET_FACET] = admin_set_facet
@@ -102,9 +110,13 @@
associated_collection.internal_uri if associated_collection.present?
end
def date_sort
date.first
+ end
+
+ def year_facet
+ YearFacet.call(self)
end
end
end
end