DS-1218 BrowseDAO based on discovery

This contribution is supported by the University of Hong Kong that has
    adopted the first version of this code since July 2010
    Software development by the CILEA SURplus Team (http://www.cilea.it)

    This is a full featured provider for the DSpace Browse System that read
    data from the Discovery Search SOLR core.
    The browse supports:
    - all the actual browse system configuration options (item and metadata
    browse, pagination, sorting)
    - browse of withdrawn items
    - browse of private items (XMLUI only)
    - search for authors used in the item mapper tool

    Major changes:
    - add two new search methods to the SearchService that allow you to
    specify if you want or not withdrawn items in your result. The old
    methods just call these new methods asking for no withdrawn item (this
    assure backcompatiliby)
    - the SearchServiceImpl now index also withdrawn item, new SolrDoc field
    "withdrawn"
    - DiscoverResult.Facet now keep information also about authority so
    that is possible distinct facets related to homonyms authors, etc.
    (this feature can be disabled in the discovery.cfg)
    - changed the schema.xml the default should be to ignore field if not
    otherwise specified (see also below)
    - better support for projection, metadata are stored (not indexed) with
    all related informations attached (authority, language). Metadata to
    store for projection can be defined in the discovery.cfg

    Other notes:
    - SolrBrowseDAO/SolrCreateBrowseDAO use settings defined in the main
    dspace.cfg (the browse section) this mean that sorting configuration is
    not related to the discovery search sorting etc.
    - Browse consumer should be disabled (if not only overhead but it still
    works), the actual index work is done using the Discovery "plugin"
    SolrServiceIndexPlugin (configurated via spring)
    - SolrCreateBrowseDAO is able to remove the old tables created by the
    DBMS DAO implementations simply using the browse command line script
    (dspace index -d -f)
    - to build the browse index it is required to run the discovery index
    client (dspace update-discovery-index -b)
This commit is contained in:
Andrea Bollini
2012-09-08 15:53:50 +02:00
parent 7407de5c52
commit 8bb68ddc81
14 changed files with 2442 additions and 680 deletions

View File

@@ -853,6 +853,25 @@ webui.strengths.cache = false
###### Browse Configuration ######
#
# Define the DAO class to use this must meet your storage choice for
# the browse system (RDBMS: PostgreSQL or Oracle, SOLR).
# By default the standard RDBMS implementation for your db is used
#
# PostgreSQL:
# browseDAO.class = org.dspace.browse.BrowseDAOPostgres
# browseCreateDAO.class = org.dspace.browse.BrowseCreateDAOPostgres
#
# Oracle:
# browseDAO.class = org.dspace.browse.BrowseDAOOracle
# browseCreateDAO.class = org.dspace.browse.BrowseCreateDAOOracle
#
# SOLR:
# browseDAO.class = org.dspace.browse.SolrBrowseDAO
# browseCreateDAO.class = org.dspace.browse.SolrBrowseCreateDAO
#
# Use this to configure the browse indices. Each entry will receive a link in the
# navigation. Each entry can be configured in one of two ways. The first is:

View File

@@ -12,3 +12,7 @@ search.server = http://localhost:8080/solr/search
#All metadata fields that will not end up in the index, this is a comma separated list
index.ignore=dc.description.provenance
# index.ignore-variants = false
# index.ignore-authority = false
index.projection=dc.title,dc.contributor.*,dc.date.issued

View File

@@ -188,4 +188,5 @@
<property name="metadataField" value="dc.date.issued"/>
<property name="type" value="date"/>
</bean>
</beans>
</beans>

View File

@@ -22,4 +22,9 @@
<alias name="solrServiceResourceIndexPlugin" alias="org.dspace.discovery.SolrServiceResourceRestrictionPlugin"/>
<!-- Additional indexing plugin to implement the browse system via SOLR -->
<bean id="solrBrowseIndexer" scope="prototype"
class="org.dspace.browse.SolrBrowseCreateDAO">
</bean>
</beans>

File diff suppressed because it is too large Load Diff