This guide will help you get up and running with a Fedora 4 instance whose updates are automatically indexed in a Solr repository. This guide glosses over many of the details and should be considered a starting point for testing this feature. The document assumes a POSIX operating system with cURL, a text editor, Java, and a download of Apache Solr 4.10.3.
Versions
Install and Start Fedora 4
Assumptions
- Fedora 4 is running on port 8080 at context "fcrepo" (with JMS listening on port 61616)
- Your Fedora 4 has the transform service enabled. Since the transform service is not available in the core Fedora webapp, you will likely need to use the Fedora Webapp Plus.
Verify
- You should be able view Fedora in a web browser at the following URL: http://localhost:8080/fcrepo/rest
- Create a resource or navigate to an existing Fedora resource in the web browser, for example http://localhost:8080/fcrepo/rest/collection
- Assuming the resource is named "collection", you can verify that the transform service is enabled by navigating to the following URL in a web browser: http://localhost:8080/fcrepo/rest/collection/fcr:transform/default
You should see a json document such as:
[{"created":["2016-06-01T18:04:41.859Z"],"has_parent":["http://localhost:8080/fcrepo/rest/"],"id":["http://localhost:8080/fcrepo/rest/collection"],"title":[],"last_modified":["2016-06-01T18:04:41.859Z"]}]
Install, Configure and Start Solr
Dowload Solr
wget http://archive.apache.org/dist/lucene/solr/4.10.3/solr-4.10.3.tgz tar -xzvf solr-4.10.3.tgz
The location of your untarred Solr installation will be furthermore referenced as $SOLR_HOME.
Update Solr schema
wget https://raw.githubusercontent.com/fcrepo4-exts/fcrepo4-vagrant-base-box/master/config/schema.xml cp schema.xml $SOLR_HOME/example/solr/collection1/conf/
Start Solr
cd $SOLR_HOME/example java -jar start.jar
Verify
- Navigating to the following URL in a web browser should show the Solr administrative interface: http://localhost:8983/solr/
Install and Start Karaf
Download Karaf
wget http://archive.apache.org/dist/karaf/4.0.2/apache-karaf-4.0.2.tar.gz tar xvzf apache-karaf-4.0.2.tar.gz
The location of your untarred Karaf installation will be furthermore referenced as $KARAF_HOME.
Start Karaf
cd $KARAF_HOME ./bin/karaf
Verify
After running the command above
- you should be presented with some ASCII art in your terminal
you should be put into the Karaf client shell, such as:
__ __ ____ / //_/____ __________ _/ __/ / ,< / __ `/ ___/ __ `/ /_ / /| |/ /_/ / / / /_/ / __/ /_/ |_|\__,_/_/ \__,_/_/ Apache Karaf (4.0.2) karaf@root()>
Note, to exit the Karaf client shell, type: "ctrl d"
Install, Configure and Start Fedora Messaging Application Toolbox
Install Toolbox
In the Karaf client shell type the following:
feature:repo-add mvn:org.fcrepo.camel/toolbox-features/4.5.1/xml/features feature:install fcrepo-indexing-solr
Verify
Still in the Karaf client shell, the following command, should...
feature:list|grep fcrepo
...result in both the "fcrepo-camel" and "fcrepo-indexing-solr" features being in the "Started" state
fcrepo-camel | 4.4.1 | | Started | fcrepo-camel-4.4.1 fcrepo-indexing-solr | 4.5.1 | x | Started | toolbox-features-4.5.1
Configure Toolbox
The configuration of the "fcrepo-indexing-solr" feature is found at: $KARAF_HOME/etc/org.fcrepo.camel.indexing.solr.cfg
You will need to make updates to this configuration file if any of the following are true:
- Your Solr is deployed at a URL different than the one detailed earlier in this document
- Your Fedora is deployed at a URL different than the one detailed earlier in this document
- Your Fedora has Authorization enabled, e.g. WebAC
If any of the above are true, edit the configuration file ($KARAF_HOME/etc/org.fcrepo.camel.indexing.solr.cfg), updating the following elements as necessary:
# If the fedora repository requires authentication, the following values can be set: fcrepo.authUsername= fcrepo.authPassword= ... # The baseUrl for the fedora repository. fcrepo.baseUrl=localhost:8080/fcrepo/rest ... # The baseUrl for the Solr server. If using Solr 4.x or better, the URL should include # the core name. solr.baseUrl=localhost:8983/solr/collection1
Success
You should now be able to create/update/delete resources in your Fedora repository, and subsequently see them in your Solr index!
Resources
For debugging purposes, you may want to inspect the logs of the various applications:
- Fedora log (unless configured otherwise):
/var/log/tomcat8/catalina.out
- Solr log:
$SOLR_HOME/example/logs/solr.log
- Karaf log:
$KARAF_HOME/data/log/karaf.log