Versions Compared

Key

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

...

DSpace

...

Discovery

...

Table of Contents
minLevel2
outlinetrue
stylenone

Introduction Video

Instructions for enabling Discovery in DSpace 1.7.0

...

As

...

with

...

any upgrade procedure, it is highly recommend that you backup your existing data thoroughly.  This includes cases where upgrading DSpace from 1.6.2

...

to

...

1.7.0.

...

 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/solr/statistics

...

cores

...

to

...

assure

...

no

...

data

...

is

...

lost.

...

  1. Enable

...

  1. the

...

  1. Discovery

...

  1. Aspects

...

  1. in

...

  1. the

...

  1. XMLUI

...

  1. by

...

  1. changing

...

  1. the

...

  1. following

...

  1. settings

...

  1. in

...

  1. config/xmlui.xconf

...

    1. Comment

...

    1. out:

...

    1. SearchArtifacts

...

    1. Uncomment:

...

    1. Discovery

...

    1. Code Block
      XML
      XML
      
      <xmlui>
          <aspects>
              <aspect name="Artifact Browser" path="resource://aspects/ArtifactBrowser/" />
              <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. 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

...

    1. discovery

...

    1. to

...

    1. the

...

    1. list

...

    1. of

...

    1. event.dispatcher.default.consumers

...

    1. Change

...

    1. recent.submissions.count

...

    1. to

...

    1. zero

...

    1. Code Block

...

    1. 
      #### Event System Configuration ####
      
      # 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
      
      #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 =

...

    1.  0
      
  1. Check that the port is correct for solr.search.server

...

  1. in

...

  1. config/dspace-solr-search.cfg

...

    1. If

...

    1. all

...

    1. of

...

    1. your

...

    1. traffic

...

    1. runs

...

    1. over

...

    1. port

...

    1. 80,

...

    1. then

...

    1. you

...

    1. need

...

    1. to

...

    1. remove

...

    1. the

...

    1. port

...

    1. from

...

    1. the

...

    1. URL

...

    1. Code Block

...

    1. 
      ##### Search Indexing #####
      solr.search.server = http://localhost/solr/search
      

...

  1. From the command line,

...

  1. navigate

...

  1. to

...

  1. the

...

  1. dspace

...

  1. directory

...

  1. and

...

  1. run

...

  1. the

...

  1. command

...

  1. below

...

  1. to

...

  1. index

...

  1. the

...

  1. content

...

  1. of

...

  1. your

...

  1. DSpace

...

  1. instance

...

  1. into

...

  1. Discovery.

...

  1. Code Block

...

  1. 
    ./bin/dspace update-discovery-index
    

...

  1. Panel

    NOTE:

...

  1. This

...

  1. step

...

  1. may

...

  1. take

...

  1. some

...

  1. time

...

  1. if

...

  1. you

...

  1. have

...

  1. a

...

  1. large

...

  1. number

...

  1. of

...

  1. items

...

  1. in

...

  1. your

...

  1. repository.

...

Instructions for Configuring Discovery

Discovery can be configured at multiple levels of the application. Outlined below will be where in Discovery changes can be made that will alter the presentation. The primary place that the user experience is altered in XMLUi is through the dspace-solr-search.cfg

...

file

Configuring Facets that are Exposed for Search Results

Property:

solr.search.server

...

Example

...

Value:

...

...

Informational

...

Note:

...

Discovery

...

relies

...

on

...

a

...

SOLR

...

index.

...

This

...

parameter

...

determines

...

the

...

location

...

of

...

the

...

SOLR

...

index.

...

Property:

...

solr.facets.search

...

Example

...

Value:

...

solr.facets.search=dc.contributor.author,dc.subject,dc.date.issued_dt

...

Informational

...

Note:

...

The

...

Discovery

...

search

...

facets,

...

offered

...

in

...

the

...

navigation

...

bar,

...

can

...

be

...

customized

...

for

...

each

...

specific

...

page

...

in

...

DSpace.

...

When

...

no

...

specification

...

is

...

given

...

for

...

a

...

page,

...

this

...

default

...

configuration

...

is

...

used.

...

Every

...

SOLR

...

facet

...

field

...

which

...

ends

...

with

...

_dt

...

will

...

be

...

handled

...

as

...

a

...

date.

...

Handeling

...

as

...

date

...

implies

...

that

...

(field.name

...

).year

...

will

...

be

...

used

...

for

...

faceting

...

|

...

Property:

...

solr.facets.site

...

Example

...

Value:

...

solr.facets.site=dc.contributor.author,dc.subject,dc.date.issued_dt

...

Informational

...

Note:

...

Defines

...

the

...

facet

...

fields,

...

offered

...

on

...

the

...

DSpace

...

homepage

...

Property:

...

solr.facets.community

...

Example

...

Value:

...

solr.facets.community=dc.contributor.author,dc.subject,dc.date.issued_dt

...

Informational

...

Note:

...

Defines

...

the

...

facet

...

fields,

...

offered

...

on

...

community

...

homepages

...

Property:

...

solr.facets.collection

...

Example

...

Value:

...

solr.facets.collection=dc.contributor.author,dc.subject,dc.date.issued_dt

...

Informational

...

Note:

...

Defines

...

the

...

facet

...

fields,

...

offered

...

on

...

collection

...

homepages

...

Property:

...

solr.facets.item

...

Example

...

Value:

...

solr.facets.item=dc.contributor.author,dc.subject,dc.date.issued_dt

...

Informational

...

Note:

...

Defines

...

the

...

facet

...

fields,

...

offered

...

on

...

item

...

pages

...

Property:

...

solr.default.filterQuery

...

Example

...

Value:

...

solr.default.filterQuery=location:l2

...

Informational

...

Note:

...

Aside

...

from

...

filters

...

that

...

are

...

applied

...

when

...

users

...

are

...

searching,

...

filters

...

can

...

also

...

be

...

applied

...

by

...

default.

...

This

...

property

...

allos

...

to

...

define

...

default

...

filters

...

that

...

are

...

used

...

for

...

every

...

search

...

in

...

Discovery.

...

The

...

syntax

...

is

...

metadatafieldname:value.

...

location

...

is

...

a

...

special

...

example,

...

used

...

to

...

restrict

...

a

...

search

...

to

...

certain

...

communities

...

and

...

collections.

...

l

...

stands

...

for

...

collection,

...

while

...

m

...

is

...

used

...

to

...

restrict

...

the

...

search

...

to

...

a

...

community.

...

The

...

numbers,

...

written

...

after

...

l

...

or

...

m

...

is

...

the

...

internal

...

database

...

ID

...

of

...

the

...

collection

...

or

...

community

Property:

...

solr.site.default.

...

filterQuery

Example Value:

solr.site.default.filterQuery=dc.contributor.author:Kevin*

...

Informational

...

Note:

...

This

...

parameter

...

applies

...

additional

...

filters

...

on

...

the

...

Recently

...

Added

...

list,

...

shown

...

on

...

the

...

DSpace

...

homepage.

...

As

...

these

...

filters

...

are

...

strict

...

matches,

...

the

...

star

...

in

...

the

...

example

...

is

...

used

...

to

...

filter

...

on

...

all

...

dc.contributor.author

...

values

...

that

...

start

...

with

...

Kevin

...

Property:

...

solr.community.default.filterQuery

...

Example

...

Value:

...

solr.community.default.filterQuery=dc.contributor.author:Kevin*

...

Informational

...

Note:

...

This

...

parameter

...

applies

...

additional

...

filters

...

on

...

the

...

Recently

...

Added

...

list,

...

shown

...

on

...

Community

...

Homepages.

...

As

...

these

...

filters

...

are

...

strict

...

matches,

...

the

...

star

...

in

...

the

...

example

...

is

...

used

...

to

...

filter

...

on

...

all

...

dc.contributor.author

...

values

...

that

...

start

...

with

...

Kevin

...

Property:

...

solr.collection.default.filterQuery

...

Example

...

Value:

...

solr.collection.default.filterQuery=dc.contributor.author:Kevin*

...

Informational

...

Note:

...

This

...

parameter

...

applies

...

additional

...

filters

...

on

...

the

...

Recently

...

Added

...

list,

...

shown

...

on

...

Collection

...

Homepages.

...

As

...

these

...

filters

...

are

...

strict

...

matches,

...

the

...

star

...

in

...

the

...

example

...

is

...

used

...

to

...

filter

...

on

...

all

...

dc.contributor.author

...

values

...

that

...

start

...

with

...

Kevin

...

Property:

...

solr.search.default.filterQuery

...

Example

...

Value:

...

solr.search.default.filterQuery=dc.embargo:lifted

...

Informational

...

Note:

...

This

...

parameter

...

applies

...

additional

...

filters

...

on

...

all

...

Discovery

...

searches.

...

In

...

this

...

example,

...

only

...

items

...

who

...

have

...

the

...

value

...

lifted

...

in

...

the

...

embargo

...

field,

...

are

...

being

...

shown

...

as

...

search

...

results.

...

Property:

...

solr.search.

...

filters

Example Value:

dc.title,

...

dc.contributor.author,

...

dc.subject,

...

dc.date.issued.year

...

Informational

...

Note:

...

Defines

...

which

...

fields

...

are

...

shown

...

in

...

the

...

(advanced)

...

search

...

form.

...

Property:

...

solr.search.sort

...

Example

...

Value:

...

solr.search.sort=dc.title,

...

dc.date.issued_dt

...

Informational

...

Note:

...

Defines

...

which

...

indexed

...

fields

...

can

...

be

...

sorted

...

on

...

in

...

the

...

search

...

results.

...

With

...

this

...

parameter

...

it's

...

possible

...

to

...

make

...

any

...

field

...

available

...

for

...

sorting.

...

Property:

...

solr.index.type.date

...

Example

...

Value:

...

solr.index.type.date=dc.date,dc.date.*

...

Informational

...

Note:

...

Defines

...

whichs

...

fields

...

are

...

indexed

...

as

...

dates.

...

Please

...

be

...

aware

...

that

...

for

...

each

...

date

...

field

...

an

...

_dt

...

will

...

be

...

suffixed

...

so

...

that

...

dc.date.issued

...

will

...

become

...

dc.date.issued_dt.

...

For

...

each

...

date

...

indexed

...

the

...

year

...

will

...

also

...

be

...

stored

...

separately

...

in

...

a

...

(field.name

...

).year

...

so

...

it

...

can

...

be

...

used

...

for

...

date

...

faceting

...

Property:

...

solr.recent-submissions.size

...

Example

...

Value:

...

solr.recent-submissions.size=5

...

Informational

...

Note:

...

Defines

...

the

...

number

...

of

...

items

...

that

...

are

...

shown

...

in

...

the

...

Recently

...

Added

...

lists.

...

Property:

...

recent.submissions.sort-option

...

Example

...

Value:

...

recent.submissions.sort-option=dc.date.accessioned_dt

...

Informational

...

Note:

...

The

...

indexed

...

metadata

...

field

...

on

...

which

...

Discovery

...

sorts

...

to

...

determine

...

which

...

items

...

were

...

recently

...

submitted

...

Property:

...

search.facet.max

...

Example

...

Value:

...

search.facet.max=10

...

Informational

...

Note:

...

Use

...

the

...

property

...

below

...

to

...

limit

...

the

...

number

...

of

...

facet

...

filters

...

in

...

the

...

side

...

of

...

the

...

search

...

page

Code Block
 |

{code}
##### Search Indexing #####
solr.search.server = http://localhost:8080/solr/search

# Should no solr facet be configured for a certain page, this one will be used as default
#Every solr facet field which ends with _dt will be handled as a date
#Handeling as date implies that {field.name}.year will be used for faceting
solr.facets.search=dc.contributor.author,dc.subject,dc.date.issued_dt

solr.facets.site=dc.contributor.author,dc.subject,dc.date.issued_dt
solr.facets.community=dc.contributor.author,dc.subject,dc.date.issued_dt
solr.facets.collection=dc.contributor.author,dc.subject,dc.date.issued_dt
# solr.facets.item=dc.contributor.author,dc.subject,dc.date.issued_dt


# Put any default search filters here, these filters will be applied to any search in discovery
# You can specify multiple filters by separating them using ,
##Default filters are used for every search in discovery, including the separate scope filters below
#solr.default.filterQuery=location:l2
# You can also specify (additional) filter(s)
## for homepage recent submissions
#solr.site.default.filterQuery=
## for community recent submissions
#solr.community.default.filterQuery=
## for collection recent submissions
#solr.collection.default.filterQuery=
## for searches
#solr.search.default.filterQuery=
## for browsing (not used at the moment)
#solr.browse.default.filterQuery=

# The filters which can be selected in the search form
solr.search.filters=dc.title, dc.contributor.author, dc.subject, dc.date.issued.year

# Indexed fields which can sorted on in our search
solr.search.sort=dc.title, dc.date.issued_dt

#Defines whichs fields are indexed as dates
#please be aware that for each date field an _dt will be suffixed so that dc.date.issued will become dc.date.issued_dt
#For each date indexed the year will also be stored separately in a {field.name}.year so it can be used for date faceting
solr.index.type.date=dc.date,dc.date.*

#Recent submission size
solr.recent-submissions.size=5
#The indexed field on which we sort so we can determine which items where recently submitted
recent.submissions.sort-option=dc.date.accessioned_dt

#Use the property below to limit the number of facet filters in the side of the search page
#search.facet.max=10
{code}

h3. Advanced Configuration in Solr

Solr itself now runs two cores. &nbsp;One for collection DSpace Solr based 

Advanced Configuration in Solr

Solr itself now runs two cores.  One for collection DSpace Solr based "statistics",

...

the

...

other

...

for

...

Discovery

...

Solr

...

based

...

"search"

{
Code Block
}
solr
├── search
│   ├── conf
│   │   ├── admin-extra.html
│   │   ├── elevate.xml
│   │   ├── protwords.txt
│   │   ├── schema.xml
│   │   ├── scripts.conf
│   │   ├── solrconfig.xml
│   │   ├── spellings.txt
│   │   ├── stopwords.txt
│   │   ├── synonyms.txt
│   │   └── xslt
│   │       ├── DRI.xsl
│   │       ├── example.xsl
│   │       ├── example_atom.xsl
│   │       ├── example_rss.xsl
│   │       └── luke.xsl
│   └── conf2
├── solr.xml
└── statistics
    └── conf
        ├── admin-extra.html
        ├── elevate.xml
        ├── protwords.txt
        ├── schema.xml
        ├── scripts.conf
        ├── solrconfig.xml
        ├── spellings.txt
        ├── stopwords.txt
        ├── synonyms.txt
        └── xslt
            ├── example.xsl
            ├── example_atom.xsl
            ├── example_rss.xsl
            └── luke.xsl
{code}

h2. Usage Guidelines

Usage Guidelines

Wiki Markup
The Discovery Module enables your repository to have faceted searching.
Thus a user can filter what they are looking for by grouping entries into a facet, and drill down to find the content they are interested in.&nbsp;
So instead of user searching: \[ wetland + "dc.author=Mitsch, William J" + dc.subject="water quality" \], they can instead do their initial search, \[ wetland \], and then filter the results by attributes.
!worddava7d46df6db45f7ce78511e9f8e78b098.png|height=855,width=804!

...

A

...

website

...

like

...

Amazon,

...

might

...

do

...

this

...

to

...

help

...

you

...

select

...

a

...

digital

...

camera.

...

You

...

can

...

reduce

...

the

...

results

...

by

...

price

...

range,

...

features,

...

megapixels,

...

manufacturer,

...

etc.

...


The

...

further

...

the

...

DSpace

...

Discovery

...

module

...

is

...

developed,

...

the

...

more

...

useful

...

that

...

browsing

...

can

...

be

...

to

...

the

...

researcher

...

looking

...

for

...

items

...

in

...

your

...

collections.

...

Screenshots

Empty search shows that it can be filtered easily.
Image Added