Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Enable the Discovery Aspects in the XMLUI by changing the following settings in config/xmlui.xconf
    1. Comment out: SearchArtifacts
    2. Uncomment: Discovery
      Code Block
      XML
      XML
      <xmlui>
          <aspects>
              <aspect name="Artifact Browser" path="resource://aspects/ArtifactBrowser/" />
              <aspect name="Browsing Artifacts" path="resource://aspects/BrowseArtifacts/" />
              <!--<aspect name="Searching Artifacts" path="resource://aspects/SearchArtifacts/" />-->
              <aspect name="Administration" path="resource://aspects/Administrative/" />
              <aspect name="E-Person" path="resource://aspects/EPerson/" />
              <aspect name="Submission and Workflow" path="resource://aspects/Submission/" />
      	<aspect name="Statistics" path="resource://aspects/Statistics/" />
      
              <!--
                  To enable Discovery, uncomment this Aspect that will enable it
                  within your existing XMLUI
                  Also make sure to comment the SearchArtifacts aspect
                  as leaving it on together with discovery will cause UI overlap issues-->
              <aspect name="Discovery" path="resource://aspects/Discovery/" />
      
      
              <!--
                  This aspect tests the various possible DRI features,
                  it helps a theme developer create themes
              -->
              <!-- <aspect name="XML Tests" path="resource://aspects/XMLTest/"/> -->
          </aspects>
      
  2. Enable the Discovery Indexing Consumer that will update Discovery Indexes on changes to content in XMLUI, JSPUI, SWORD, and LNI in config/dspace.cfg
    1. Add discovery to the list of event.dispatcher.default.consumers
      Code Block
      # default synchronous dispatcher (same behavior as traditional DSpace)
      event.dispatcher.default.class = org.dspace.event.BasicDispatcher
      #event.dispatcher.default.consumers = search, browse, eperson, harvester
      event.dispatcher.default.consumers = search, browse, discovery, eperson, harvester
      
    2. Change recent.submissions.count to zero
      Code Block
      #Put the recent submissions count to 0 so that discovery can use it's recent submissions,
      # not doing this when discovery is enabled will cause UI overlap issues
      #How many recent submissions should be displayed at any one time
      #recent.submissions.count = 5
      recent.submissions.count = 0
      
  3. Check that the port is correct for solr.search.server in config/modules/discovery.cfg
    1. If all of your traffic runs over port 80, then you need to remove the port from the URL
      Code Block
      ##### Search Indexing #####
      solr.search.server = http://localhost/solr/search
      
  4. From the command line, navigate to the dspace directory and run the command below to index the content of your DSpace instance into Discovery.
    Code Block
    ./bin/dspace update-discovery-index
    
    Panel

    NOTE: This step may take some time if you have a large number of items in your repository.

...

Configuration files

The configuration for discovery is located in 2 separate files.

  • General settings: The discovery.cfg file located in the dspace.dir/config/modules directory.
  • User Interface Configuration: The spring-dspace-addon-discovery-configuration-services.xml file is located in dspace.dir/config/spring directory.

...

General Discovery settings (config/modules/discovery.cfg)

The discovery.cfg file is located in the dspace.dir/config/modules directory and contains following properties:

Property:

search.server

Example Value:

search.server=http://localhost:8080/solr/search

Informational Note:

Discovery relies on a SOLR index for storage and retrieval of its information. This parameter determines the location of the SOLR index.

Property:

search.default.sort.order

Example Value:

search.default.sort.order=DESC

Informational Note:

The default sort order for relevance when searching in discovery. This parameter can either be descending (DESC) or ascending (ASC). End-users can change this sort order from the user interface.

Property:

index.ignore

Example Value:

index.ignore=dc.description.provenance,dc.language

Informational Note:

By default, Discovery will include all of the DSpace metadata in its search index. In cases where specific metadata is confidential, repository managers can include those fields by adding them to this comma separated list.

...

Modifying the Discovery

...

User Interface (config/spring/spring-dspace-addon-discovery-configuration-services.xml)

The spring-dspace-addon-discovery-configuration-services.xml file is located in the dspace.dir/config/spring directory.

Structure Summary

Because this file is in XML format, you should be familiar with XML before editing this file. The configurations are organized together in beans, depending on the purpose these properties are used for.
This purpose can be derived from the class of the beans. Here's a short summaries of classes you will encounter throughout the file and what the corresponding properties in the bean are used for.

...

Class:

DiscoveryConfigurationService

Purpose:

Defines the mapping between separate Discovery configurations and individual collections/communities

Default:

All communities, collections and the homepage (key=default) are mapped to defaultConfiguration

Class:

DiscoveryConfiguration

Purpose:

Groups configurations for sidebar facets, search filters, search sort options and recent submissions

Default:

There is one configuration by default called defaultConfiguration

Class:

DiscoverySearchFilter

Purpose:

Defines that specific metadata fields should be enabled as a search filter

Default:

dc.title, dc.contributor.author, dc.creator, dc.subject.* and dc.date.issued are defined as search filters

Class:

DiscoverySidebarFacetConfiguration

Purpose:

Defines which metadata fields should be offered as a contextual sidebar browse option

Default:

dc.contributor.author, dc.creator, dc.subject.* and dc.date.issued

Class:

DiscoverySortConfiguration

Purpose:

Further specifies the sort options to which a DiscoveryConfiguration refers

Default:

dc.title and dc.date.issued are defined as alternatives for sorting, other than Relevance (hard coded)

Default settings

In addition to the summarized descriptions of the default values, following details help you to better understand these defaults. If you haven't yet, download the configuration file and review it together with the following parameters.
The file contains one default configuration that defines following sidebar facets, search filters, sort fields and recent submissions display:

...