Table of Contents

About This Service
Installation
Configuring the Service
Configuring Fedora for Automatic Updates
Additional Information

About This Service

The Fedora Generic Search Service is part of the Fedora Service Framework. It was developed by Gert Schmeltz Pedersen at the Technical University of Denmark, with feedback and contributions from members of the Fedora community, including Beth Kirschner, Binaya Poudyal, Blake Anderson, Boon Low, Christian Tønsberg, Eric Brown, Jun Yamog, Junran Lei, Luis Zorita, Matt Zumwalt, Matthias Razum, Michael Appleby, Michael Hoppe, Nikolai Schwertner, Patrick Monbaron, Pierre-Yves Landron, Ranju Upadhyaya, Robert Sherratt, Ryan E. Scherle, Sam Liberman, Shunde Zhang, Steve DiDomenico Thierry Michel, and Xinjian Guo.

The work is funded by DEFF, Denmark's Electronic Research Library.

The service has the following features:

The service has been developed and tested on Linux. This release targets only Linux installations. If you want to use the service on other platforms, you may be expert enough to do so, at least several people have succeeded in using the prototype on Windows and Mac platforms. You are encouraged to share problems and experience with the Fedora community, send mail to fedora-users, or to Chris Wilper, or to Gert Schmeltz Pedersen.

The following figure serves to give a first understanding for a developer, who will use the Search Service in a Fedora application:

The figure shows:

The Search Service may run in a separate web server and may index more than one Fedora repository, and it may update more than one index in parallel. For further architectural details, see Additional Information

Fedora version 2.2 does not automatically update the Search Service indexes, this will come with version 2.3.

Installation

To install the service:

The SOAP service operations are deployed with the .war file, and the .wsdl file is available here.

Configuring the Service

Configuring Fedora for Automatic Updates

As of Fedora 2.2, it is possible to configure Fedora to send a signal to the Generic Search Service when objects are added, modified, and purged. We expect future versions of Fedora to use more sophisticated messaging techniques (like JMS) to accomplish this, but for now Fedora can be made to send simple REST calls to the service at appropriate times.

To enable this, edit your fedora.fcfg file and change the class of the fedora.server.storage.DOManager module to fedora.server.storage.GSearchDOManager. Then populate the following module parameters as needed:

Additional Information

Search Engine Plugins
Architectural Snapshots
Multilingual Configuration

Search Engine Plugins

Lucene

The Lucene plugin comes as the java package dk.defxws.fgslucene together with the Apache Lucene java libraries. The set of classes was inspired by the JDBC API specification.

The Lucene plugin is used by configuration as explained above, see also the DemoOnLucene example.

Lucene has a very rich functionality, and this plugin exploits a small fraction of it. As a java programmer, you may have ideas for further exploitation, which you may realize by implementing an enhanced version of the plugin. Please, share such ideas and implementations with the Fedora community.

Zebra

The Zebra plugin comes as the java package dk.defxws.fgszebra .

The Zebra plugin is used by configuration as seen from the DemoOnZebra example, which includes a README file, which explains how to get and install Zebra, and how to configure it.

Architectural Snapshots

A typical application will index one repository in one index. However, you have the possibility to index many repositories in one or more indexes in parallel, as illustrated here:

Multilingual Configuration

Luis Zorita had this problem and solved it (his mail to fedora-users on 24 August 2006):

Hello Gert: I have solved this multilingual problem adding the attribute URIEncoding="UTF-8" to /jakarta-tomcat-5.0.28/conf/server.xml and to /jakarta-tomcat-5.0.28/conf/server_fedoraTemplate.xml Now I can search special Spanish characters like "ñ", "í" etc. with fedoragsearch. Luis