Versions Compared

Key

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

...

In a faceted search, a user can modify the list of displayed search results by specifying additional "filters" that will be applied on the list of search results. In DSpace, a filter is a contain condition applied to specific facets. In the example below, a user started with the search term "approach", which yielded 15 results. By applying the filter "economics" on the facet "Subject". After applying this filter, only 6 results remain.

Wiki MarkupAnother example would be the standard search operation \ [*wetland + "dc.author=Mitsch, William J" + dc.subject="water quality"* \ ]. With filtered search, a user can start by searching for \ [*wetland* \ ], and then filter the results by the other attributes, author and subject.

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
  • Auto-complete on search terms

...

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[dspace]/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>
              <!--
         <aspect name="Artifact Browser" path="resource://aspects/ArtifactBrowser/" />       @deprecated: the Artifact Browser has been devided into ViewArtifacts,
                  BrowseArtifacts, SearchArtifacts
                  <aspect name="BrowsingArtifact ArtifactsBrowser" path="resource://aspects/BrowseArtifactsArtifactBrowser/" />
              <!-->
              <aspect name="SearchingDisplaying Artifacts" path="resource://aspects/SearchArtifactsViewArtifacts/" />
              <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 if you now see the Sidebar Facets on your DSpace homepage. Note that these are only visible when you have items in your repository.

Configuration filesConfiguration 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/discovery/ 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:

...

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

...

  • metadataSortField (mandatory): The metadata field to sort on to retrieve the recent submissions
  • max (mandatory): The maximum number of results to be displayed as recent submissions
  • type (optional): the type of the search filter it can either be date or text, if none is defined text will be used.

...

Discovery SOLR Index Maintenance

Command used:

[dspace]/bin/dspace update-discovery-index [-cbhf[r <item handle>]]

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="626ef138-8669-444e-9f52-4c39e4ef329f"><ac:plain-text-body><![CDATA[

Command used:

[dspace]/bin/dspace update-discovery-index -o

]]></ac:plain-text-body></ac:structured-macro>

Java class:

org.dspace.discovery.SolrServiceImpl (or any other custom class that inherits from org.dspace.discovery.IndexingService) IndexClient

Arguments ( Arguments (short and long forms):

Description

 

called without any options, will update/clean an existing index

-b

(re)build index, wiping out current one if it exists

-c

clean existing index removing any documents that no longer exist in the db

-f

if updating existing index, force each handle to be reindexed even if uptodate

-h

print this help message

-o

Run maintenance on the Discovery SOLR index. Recommended to run daily, to prevent your servlet container from running out of memory

Notes:

optimize search core

-r <item handle>

remove an Item, Collection or Community from index based on its handle

Routine Discovery SOLR Index Maintenance

It is strongly recommended to run maintenance on the Discovery SOLR index The usage of this this option is strongly recommended, you should run this script daily (from crontab or your system's scheduler), to prevent your servlet container from running out of memory. :

[dspace]/bin/dspace update-discovery-index -o

Advanced SOLR Configuration

Discovery is built as an application layer on top of the Open Source Enterprise Search Server SOLR. ThereforTherefore, 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".

...