Changes
Added submission by Alexander O'Neill
* Peter Murray, OhioLINK, peter@OhioLINK.edu
== Adding Solr-based Search to Evergreen's OPAC ==
* Alexander O'Neill, Robertson Library, University of Prince Edward Island, aoneill@upei.ca
The current way the Evergreen OPAC searches records is to use it's database back-end's search system, with heavy use of caching layers to compensate for the relatively long wait to perform a new search.
This is a personal project to adapt the Evergreen search results page to use the Solr and Lucene search engine stack - integrating the external search function as closely as possible with Evergreen's existing look and feel. This is a possible alternative to replacing an entire OPAC just to take advantage of the very desirable features offered by the Solr stack as Evergreen does offer a very well-designed extensible JavaScript interface which we and others have already gotten great results customizing and adding features to such as integrated Google Books previews and incorporating LibraryThing's social features. Adapting the leading open source search technology into this very powerful stack is one more feature to add to Evergreen's very compelling list of selling points.
It is still possible to use Evergreen's OpenSRF messaging system to get live information about each book's current availability status without having to push all of this information into the Solr index.
I will show how I used SolrMarc to import records from Evergreen, taking advantage of the fact that the VuFind and Blacklight projects have collaborated to create a general import utility that is usable by third-party projects. I will discuss some of the hurdles I encountered while using SolrMarc and the resulting changes to SolrMarc's design that this use case helped to motivate.
I'll also make an effort to take measurements of performance when hosting both Solr and Evergreen on the same server compared with putting Solr on a separate server. It will also be informative to see how much of an Evergreen server's system load is devoted to processing user searches.