Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: minor cleanup of language

...

Info

Since DSpace 3.0 Discovery is also supported also in the JSP UIJSPUI.

 

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.

...

Info
Starting from DSpace 3.0 discovery is also supported also in JSP UIJSPUI.

General improvements:

  • Hierarchical facets sidebar facets
  • Improved & more intuitive user interface
  • Access rights based results
  • Authority control & variants aware ( homonymous are shown separately in facet if they have different authority ID). All variants form as know by the authority framework are indexed. See Authority Framework

XML UI XMLUI only:

  • Hit highlighting and search snippets support
  • More like this

Enabling Discovery

Step required for: XML UIXMLUI

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 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

      Code Block
      xml
      xml
      <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>
      
  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.

  5. Verify that you can see the Sidebar Facets on your DSpace homepage. Note that these are only visible when you have items in your repository.

Step required for: JSP UIJSPUI

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 assure no data is lost.

  1. Enable the Discovery Search processor in the by changing the following settings in config/dspace.cfg
    1. Comment out: org.dspace.app.webui.search.LuceneSearchRequestProcessor
    2. Uncomment: org.dspace.app.webui.discovery.DiscoverySearchRequestProcessor

      Code Block
      xml
      xml
      plugin.single.org.dspace.app.webui.search.SearchRequestProcessor = \
              org.dspace.app.webui.discovery.DiscoverySearchRequestProcessor
      
  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
      
      Note

      As it is not possible in JSP UI JSPUI to use both search provider (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 DAOs /Discovery as its backend (see Browse DAOs configuration 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 JSP UI JSPUI instead of XML UI XMLUI still rely on the Browse Engine to show Recent submission"recent submissions". The browse engine can be configurated configured to use SOLR DAOs/Discovery as its backend (see Defining the Storage of the Browse Data)

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

      Code Block
      plugin.named.org.dspace.app.webui.json,JSONRequest = \
          org.dspace.app.webui.discovery.DiscoveryJSONRequest = discovery
  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.

  5. Verify that you can see the Sidebar Facets on your DSpace homepage or that empty search query will return all the repository content. Note that these are only visible when you have items in your repository.

...

  • 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 JSP UI JSPUI some enabling configuration are placed in in the [dspace-install-dir]/config/dspace.cfg file

...

Code Block
languagehtml/xml
<bean class="org.dspace.discovery.SolrServiceResourceRestrictionPlugin" id="solrServiceResourceIndexPlugin"/>

<alias name="solrServiceResourceIndexPlugin" alias="org.dspace.discovery.SolrServiceResourceRestrictionPlugin"/>
Warning

The browse system support Browse Engine only supports the "Access item based results" approach only with the SOLR DAOs implementation. If you need it be sure to enable it in the browse configurationif the SOLR/Discovery backend is enabled (see Defining the Storage of the Browse Data)

Access item based results technical details

...

Warning

This paragraph only apply to XML UI. JSP UI rely XMLUI. The JSPUI relies on the Browse Engine to show recent submission"recent submissions". This requires that the SOLR/Discovery backend is enabled (see Defining the Storage of the Browse Data).

The recent submissions configuration element contains all the configuration settings to display the list of recently submitted items on the home page or community/collection page. Because the recent submission configuration is in the discovery configuration block, it is possible to show 10 recently submitted items on the home page but 5 on the community/collection pages.

...

Warning

This paragraph only apply to XML UI. JSP UI doesn't support XMLUI. The JSPUI does not currently support "highlighting & search snippets at the moment".

The hit highlighting configuration element contains all the settings to display search snippets & enable hit highlighting.

...

The rendering of search results is no longer handled by the mets format but uses a special type of list named "TYPE_DSO_LIST". Each metadata field (& fulltext if configured) is added in the DRI and IF the field contains hit higlighting the java code will split up the string & add DRI highlights to the list. The xsl for the themes also contains special rendering xsl for the DRI, for Mirage the changes have been located in the discovery.xsl file. For themes using the old structural.xsl look for the template matching "dri:list[@type='dsolist']".

"More like this" configuration

Warning

This paragraph only apply to XML UI. JSP UI doesn't XMLUI. The JSPUI does not currently support the "More like this" feature at the moment.

The 'more like this'-configuration element contains all the settings for displaying the related items on an item display page.
Below is an example of the more like this configuration.

...