Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Another example: Using the standard search, a user would search for something like [wetland + "dc.author=Mitsch, William J" + dc.subject="water quality" ]. With filtered search, they can start by searching for [wetland ], and then filter the results by the other attributes, author and subject.

Discovery

...

Changelist

DSpace 1.7 

  • Sidebar browse facets that can be configured to use contents from any metadata field
    • Dynamically generated timespans for dates
  • Customizable "recent submissions" view on the repository homepage, collection and community pages
  • Hit highlighting & search snippets

DSpace 1.

...

  • Configuration moved from dspace.cfg into config/modules/discovery.cfg and config/spring/api/discovery.xml
  • Individual communities and collections can have their own Discovery configuration.
  • Tokenization for Auto-complete values (see SearchFilter)
  • Alphanumeric sorting for Sidebarfacets
  • Possibility to avoid indexation of specific metadata fields.
  • Grouping of multiple metadata fields under the same SidebarFacet

DSpace 3

...

.0 

Info
Starting from DSpace 3.0, Discovery is also supported in JSPUI.

...

  • Hit highlighting and search snippets support
  • "More like this" (related items)

Bugfixes and other changes

Enabling Discovery

...

  • 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 forwards 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.

  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 = 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
      
  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
    .[dspace]/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.

...

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 assure ensure 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 = 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 provider providers (Lucene and Discovery),  it  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
  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 an empty search query will return all repository content. Note that these are only visible when you have items in your repository.

...

Configuring lists of sidebarFacets and searchFilters

Note

After modifying sidebarFacets and searchFilters, don't forget to reindex existing items by running [dspace]/bin/dspace update-discovery-index -b, otherwise the changes will not appear.

 

Below is an example of how one of these lists can be configured. It's important that each of the bean references corresponds to the exact name of the earlier defined facets, filters or sort options.

...

Warning

This paragraph only apply to XMLUI. The JSPUI does not currently support the "More like this" feature.

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

Code Block
languagehtml/xml
<property name="moreLikeThisConfiguration">
    <bean class="org.dspace.discovery.configuration.DiscoveryMoreLikeThisConfiguration">
        <property name="similarityMetadataFields">
            <list>
                <value>dc.contributor.author</value>
                <value>dc.creator</value>
                <value>dc.subject</value>
            </list>
        </property>
        <!--The minimum number of matching terms accrossacross the metadata fields above before an item is found as related -->
        <property name="minTermFrequency" value="5"/>
        <!--The maximum number of related items displayed-->
        <property name="max" value="3"/>
    </bean>
</property>

...

Discovery is built as an application layer on top of the Open Source Enterprise Search Server Solrthe Solr open source enterprise search server. Therefore, 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".

...