Unsupported Release

This documentation relates to DSpace 1.8.x, an old, unsupported version. Looking for another version? See all documentation.

As of January 2015, DSpace 1.8.x is no longer supported. We recommend upgrading to a more recent version of DSpace. See DSpace Software Support Policy.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

DSpace Discovery

What is DSpace Discovery

The Discovery Module for the XML user interface enables faceted searching & browsing for your repository.

In a faceted search, a user can filter what they are looking for by grouping entries into a facet, and drill down to find the content they are interested in.
So instead of user searching: [ wetland + "dc.author=Mitsch, William J" + dc.subject="water quality" ], users can instead do their initial search, [ wetland ], and then filter the results by attributes.

Although these techniques are new in DSpace, they might feel familiar from other platforms like Aquabroser or Amazon, where facets help you to select the right product according to facets like price and brand. DSpace Discovery offers very powerful browse and search configurations that were only possible with code customization in the past.

Watch the DSpace Discovery introduction video

Discovery Features

  • Configurable sidebar browse facets that can display contents from any metadata field
    • Dynamically generated timespans for dates
  • Customizable recent submissions display on the repository homepage, collection and community pages

DSpace 1.8 Improvements

  • Configuration moved from dspace.cfg into config/modules/discovery.cfg and config/spring/discovery/spring-dspace-addon-discovery-configuration-services.xml
  • Individual communities and collections can have their own Discovery configuration.

Enabling Discovery

As with any upgrade procedure, it is highly recommend that you backup your existing data thoroughly. Although upgrades in versions of Solr/Lucene do tend to be forwards compatible for the data stored in the Lucene index, it is always a best practice to backup your dspace.dir/solr/statistics cores to assure no data is lost.

  1. Enable the Discovery Aspects in the XMLUI by changing the following settings in config/xmlui.xconf
    1. Comment out: SearchArtifacts
    2. Uncomment: Discovery
      <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
    2. Change recent.submissions.count to zero
      #### Event System Configuration ####
      
      # 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
      
      #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
      ##### 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.
    ./bin/dspace update-discovery-index
    

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

Configuring Discovery

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.

Configuring 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).

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.

Advanced SOLR Configuration

Discovery is built as an application layer on top of the Open Source Enterprise Search Server SOLR. Therefor, SOLR configuration can be applied to the SOLR cores that are shipped with DSpace.
The DSpace SOLR instance itself now runs two cores. One for collection DSpace Solr based "statistics", the other for Discovery Solr based "search".

solr
├── search
│   ├── conf
│   │   ├── admin-extra.html
│   │   ├── elevate.xml
│   │   ├── protwords.txt
│   │   ├── schema.xml
│   │   ├── scripts.conf
│   │   ├── solrconfig.xml
│   │   ├── spellings.txt
│   │   ├── stopwords.txt
│   │   ├── synonyms.txt
│   │   └── xslt
│   │       ├── DRI.xsl
│   │       ├── example.xsl
│   │       ├── example_atom.xsl
│   │       ├── example_rss.xsl
│   │       └── luke.xsl
│   └── conf2
├── solr.xml
└── statistics
    └── conf
        ├── admin-extra.html
        ├── elevate.xml
        ├── protwords.txt
        ├── schema.xml
        ├── scripts.conf
        ├── solrconfig.xml
        ├── spellings.txt
        ├── stopwords.txt
        ├── synonyms.txt
        └── xslt
            ├── example.xsl
            ├── example_atom.xsl
            ├── example_rss.xsl
            └── luke.xsl

Discovery 1.7 Tips & Tricks Web Seminar

This webinar has been broadcasted on June 1st, 2011 and its contents relate to DSpace 1.7

http://www.ustream.tv/recorded/15095992

Topics in this webinar include:

  • Hiding metadata from discovery
  • Configuring different fields in the auto-complete drop-down
  • Discovery Browse: Creating new facets
    • Special case: Creating a new date value facet
  • No labels