Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Removed section on enabling Discovery

...

Although these techniques are new in DSpace, they might feel familiar from other platforms like Aquabroser Aquabrowser 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

Info

Since DSpace 34.0 Discovery is also supported in the the default Search and Browse infrastructure for both XMLUI and JSPUI.

...

What is a Sidebar Facet

From the user perspective, faceted search (also called faceted navigation, guided navigation, or parametric search) breaks up search results into multiple categories, typically showing counts for each, and allows the user to "drill down" or further restrict their search results based on those facets.

...

  • Auto-complete functionality has been removed in XMLUI from search queries due to performance issues. JSPUI still supports auto-complete functionality without performance issues.

Enabling Discovery

You can independently enable Discovery for XMLUI or JSPUI. Follow the steps below.

Steps required for XMLUI

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 forward-compatible for the data stored in the Lucene index, it is always a best practice to backup your [dspace-install-dir]/solr/statistics cores to assure no data is lost.

...

Uncomment: Discovery

...

<xmlui>
    <aspects>
        <!--
            @deprecated: the Artifact Browser has been devided into ViewArtifacts,
            BrowseArtifacts, SearchArtifacts
            <aspect name="Artifact Browser" path="resource://aspects/ArtifactBrowser/" />
        -->
        <aspect name="Displaying Artifacts" path="resource://aspects/ViewArtifacts/" />
        <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>

...

  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 = versioning, search, browse, eperson, harvester
    event.dispatcher.default.consumers = versioning, 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
    

...

  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
    

...

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
[dspace]/bin/dspace index-discovery
Panel

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

...

Steps required for JSPUI

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-install-dir]/solr/statistics cores to ensure no data is lost.

...

Uncomment: org.dspace.app.webui.discovery.DiscoverySearchRequestProcessor

...

plugin.single.org.dspace.app.webui.search.SearchRequestProcessor = \
        org.dspace.app.webui.discovery.DiscoverySearchRequestProcessor

...

  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 = versioning, search, browse, eperson, harvester
    event.dispatcher.default.consumers = versioning, search, browse, discovery, eperson, harvester
    
    Note

    As it is not possible in JSPUI to use both search providers (Lucene and Discovery), it is generally more appropriate, but not required, to remove the "search" consumer from the list above. The "browse" consumer can be removed as well if you configure the Browse System to use Solr/Discovery as its backend (see Defining the Storage of the Browse Data)

  2. Enable facet showing in the Repository, Communities and Collections home pages

    Code Block
    plugin.sequence.org.dspace.plugin.CommunityHomeProcessor = \
            org.dspace.app.webui.components.RecentCommunitySubmissions,\
            org.dspace.app.webui.discovery.SideBarFacetProcessor
    
    plugin.sequence.org.dspace.plugin.CollectionHomeProcessor = \
            org.dspace.app.webui.components.RecentCollectionSubmissions,\
            org.dspace.app.webui.discovery.SideBarFacetProcessor
    
    plugin.sequence.org.dspace.plugin.SiteHomeProcessor = \
            org.dspace.app.webui.discovery.SideBarFacetProcessor
    
    Note

    Please note that JSPUI (in contrast to XMLUI) still relies on the Browse Engine to show "recent submissions". The browse engine can be configured to use Solr/Discovery as its backend (see Defining the Storage of the Browse Data)

  3. Enable a JSON endpoint to provide the autocompletion feature in the search form

    Code Block
    plugin.named.org.dspace.app.webui.json.JSONRequest = \
        org.dspace.app.webui.discovery.DiscoveryJSONRequest = discovery

...

  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
    

...

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 index-discovery
Panel

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

...

Because Discovery was adopted as the default infrastructure for search and browse in DSpace 4, no manual steps are required to enable Discovery. If you want to enable Discovery on older versions of DSpace, please refer to the DSpace documentation for that particular version.

Configuration files

The configuration for discovery is located in 2 separate files.

Configuration files

The configuration for discovery is located in 2 separate files.

  • General settings: The discovery.cfg file located in the [dspace-install-dir]/config/modules directory.
  • User Interface Configuration: The discovery.xml file is located in [dspace-install-dir]/config/spring/api/ directory.
Note

Only for JSPUI some enabling configuration are placed in in the [dspace-install-dir]/config/dspace.cfg file

...

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

...