Table of Contents

SolrMarc

SolrMarc is used to import MARC metadata to the “biblio” index on Solr used by VuFind. See index_schema for notes on the layout of the index.

Upgrading Solrmarc

If you are having trouble with the importer packaged with VuFind, you may want to update to the latest version of the tool, available here. Instructions on setting up Solrmarc with VuFind are available here.

Customizing Import Mappings

The import process is controlled by the settings in the import/marc.properties file under your VuFind installation directory. The default settings should be fine for a first-time user, but if you want to change or expand the set of MARC fields that are used to build VuFind's search indexes, you can edit this file to make adjustments. See the SolrMarc documentation for details on how this works.

As of VuFind 1.0RC2, a second properties file is also available called import/marc_local.properties. Any lines added to this file will override the equivalent settings in marc.properties. Use of this file is optional, but it is an easy way to separate your local customizations from the default settings packaged with VuFind.

Customizing Translation Maps

One of the features of SolrMarc is the ability to translate values found in MARC into different strings using translation map files (i.e. language_map.properties). See the SolrMarc documentation for details on how to specify a translation map in the marc.properties file.

Starting with VuFind 1.0RC2, translation maps are found in the import/translation_maps directory.

Prior to RC2, translation maps are embedded in the SolrMarc .jar file, making them more difficult (but certainly not impossible) to modify.

Customizing Format Determination

One of the most commonly-requested VuFind customizations involves changing the way record formats are assigned.

By default, formats are generated using the getFormat function built into SolrMarc. However, the logic used by getFormat is also replicated in a BeanShell script packaged with VuFind. If you want to customize the behavior, here are the steps to follow:

  1. Edit import/index_scripts/format.bsh to customize the behavior as needed. BeanShell borrows its syntax and libraries from Java, so the code should look familiar to many developers. The MARC access is accomplished with the MARC4J library.
  2. If your new custom script returns different values than the old script, or if you want to change the way the existing values are mapped into your index, edit the translation map in import/translation_maps/format_map.properties.
  3. Uncomment the format line (format = script(format.bsh), getFormat, format_map.properties) in import/marc_local.properties to ensure that VuFind imports using the custom BeanShell version of getFormat instead of the built-in SolrMarc version.

Custom Indexing Functions

Sometimes, it is necessary to perform special data manipulation beyond the capabilities of the built-in SolrMarc functions. See this page for details on writing custom Java code to extend the capabilities of SolrMarc.

Starting with VuFind 1.0RC2, it is also possible to write custom indexing functions as BeanShell scripts. This allows you to extend SolrMarc without having to rebuild the entire Java package. You can simply add scripts to the import/scripts directory and call them from your marc.properties file; here's an example to show the syntax:

format = script(format.bsh), getFormat, format_map.properties

Pre-Processing Records

It may occasionally be useful to manipulate records after you export them from your ILS but before you load them into SolrMarc. See the Code4Lib Working with MARC page for some tools to help you with MARC manipulation.