Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  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 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 SOLRSolr/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 SOLRSolr/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.

...

Property:

search.server

Example Value:

search.server=[http://localhost:8080/solr/search]

Informational Note:

Discovery relies on a SOLR Solr index for storage and retrieval of its information. This parameter determines the location of the SOLR Solr index.

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.

Property:

index.authority.ignore[.field]

Example Value:

index.authority.ignore=true

index.authority.ignore.dc.contributor.author=false

Informational Note:

By default, Discovery will use the authority information in the metadata to disambiguate homonymous. Setting this property to false will make the indexing process the same as the metadata  doesn't include authority information. The configuration can be different on a field (<schema>.<element>.<qualifier>) basis, the property without field set the default value.

Property:

index.authority.ignore-prefered[.field]

Example Value:

index.authority.ignore-prefered=true

index.authority.ignore-prefered.dc.contributor.author=false

Informational Note:

By default, Discovery will use the authority information in the metadata to query the authority for the prefered label. Setting this property to false will make the indexing process the same as the metadata  doesn't include authority information (i.e. the prefered form is the one recorded in the metadata value). The configuration can be different on a field (<schema>.<element>.<qualifier>) basis, the property without field set the default value. If the authority is a remote service, disabling this feature can greatly improve performance.

Property:

index.authority.ignore-variants[.field]

Example   Value:

index.authority.ignore-variants=true

index.authority.ignore-variants.dc.contributor.author=false

Informational Note:

By default, Discovery will use the authority information in the metadata to query the authority for variants. Setting this property to false will make the indexing process the same as the metadata  doesn't include authority information. The configuration can be different on a field (<schema>.<element>.<qualifier>) basis, the property without field set the default value. If the authority is a remote service, disabling this feature can greatly improve performance.

...

  • indexFieldName (Required): A unique search filter name, the metadata will be indexed in SOLR under Solr under this field name.
  • metadataFields (Required): A list of the metadata fields that need to be included in the facet.

...

  • facetLimit (optional): The maximum number of values to be shown. This property is optional, if none is specified the default value '"10' " will be used. If the filter has the type date, this property will not be used since dates are automatically grouped together.
  • sortOrder (optional):The sort order for the sidebar facets, it can either be COUNT or VALUE. The default value is COUNT.
    • COUNT Facets will be sorted by the amount of times they appear in the repository
    • VALUE Facets will be sorted alphabetically
  • type(optional): the type of the sidebar facet it can either be '"date' " or '"text'",  '"text' " is the default value.
    • text: The facets will be treated as is
    • date: Only the year will be stored in the SOLR indexSolr index. These years are automatically displayed in ranges that get smaller when you select one.

...

Warning

The Browse Engine only supports the "Access item based results" if the SOLRSolr/Discovery backend is enabled (see Defining the Storage of the Browse Data)

...

Warning

This paragraph only applies to XMLUI. JSPUI relies on the Browse Engine to show "recent submissions". This requires that the SOLRSolr/Discovery backend is enabled (see Defining the Storage of the Browse Data).

...

  • similarityMetadataFields: the metadata fields checked for similarity
  • minTermFrequency: The minimum number of matching terms accross the metadata fields above before an item is found as related
  • max: The maximum number of related items displayed
"More like this" technical details

The org.dspace.discovery.SearchService object has received a getRelatedItems() method. This method requires an item & the more-like-this configuration bean from above. This method is implemented in the org.dspace.discovery.SolrServiceImpl which uses the item as a query & uses the default Solr parameters for more-like-this to pass the bean configuration to solr (http://wiki.apache.org/solr/MoreLikeThis). The result will be a list of items or if none found an empty list. The rendering of this list is handled in the org.dspace.app.xmlui.aspect.discovery.RelatedItems class.

Discovery

...

Solr Index Maintenance

Command used:

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

Java class:

org.dspace.discovery.IndexClient

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

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 Solr index daily (from crontab or your system's scheduler), to prevent your servlet container from running out of memory:

...