archivesspace/archivesspace — pull request #88 by mark-cooper (2014-08-18 03:55:06+00:00)
Title: Add support for external Solr instance

This is experimental, although important for certain deployment types
(larger installations, vendor installations, or where there is an
existing Solr infrastructure in place) and therefore would be great
to have for the next release.

The modularity of ArchivesSpace is compromised by how the indexer
and Solr are coupled together in the launcher script. The indexer
can run from anywhere it can access the backend and Solr over http
so it's limiting to have them instantiated together (and somewhat
misleading to have the indexer tucked away behind solr_url).

By starting the indexer and Solr separately, and making it possible
to disable the provided Solr an external instance can be used with
minimal configuration changes (provided Solr is configured
appropriately). For example:

```
AppConfig[:enable_solr] = false
AppConfig[:solr_url] = "http://solr.somewhere.org:8983/solr/archivesspace"
```

To make this work Solr requests in ArchivesSpace have been modified to
retain the URI path of the solr url (so in the above example
"solr/archivesspace" is appended or concatenated before the handler,
such as "/select").

A build for anyone interested is available at:

https://dl.dropboxusercontent.com/u/870845/apps/archivesspace-external-solr.zip

Also there is an Ansible playbook for testing:

https://github.com/mark-cooper/archivesspace-solr-playbook