About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
indexing:solrmarc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
indexing:solrmarc [2019/05/16 18:43] – [VuFind 4.0 and newer] demiankatzindexing:solrmarc [2024/02/23 11:34] (current) demiankatz
Line 1: Line 1:
 ====== SolrMarc ====== ====== SolrMarc ======
  
-[[https://github.com/solrmarc/solrmarc|SolrMarc]] is used to import MARC metadata to the "biblio" index on Solr used by VuFind See [[development:architecture:solr_index_schema|Solr Index Schema]] for notes on the layout of the index.+[[https://github.com/solrmarc/solrmarc|SolrMarc]] is used to import MARC bibliographic and authority metadata into the Solr instance used by VuFind®. See [[development:architecture:solr_index_schema|Solr Index Schema]] and [[development:architecture:authority_control|Authority Control]] for notes on the layout of the index.
  
 ===== SolrMarc Versions ===== ===== SolrMarc Versions =====
  
-VuFind's [[:changelog|changelog]] can help you determine which version of SolrMarc you are currently running.+VuFind®'s [[:changelog|changelog]] can help you determine which version of SolrMarc you are currently running.
  
-:!: Prior to VuFind 3.1, SolrMarc 2.x was used. With the introduction of SolrMarc 3.x, many performance benefits and enhanced features became available.+:!: Prior to VuFind® 3.1, SolrMarc 2.x was used. With the introduction of SolrMarc 3.x, many performance benefits and enhanced features became available.
  
-Users are strongly encouraged to upgrade to VuFind 3.1 or later in order to take advantage of the improved indexing tool. Manually installing the new SolrMarc in an earlier version of VuFind should also be possible with relatively minimal work by replacing the necessary .jar files and adapting the revised indexing scripts found in later releases.+==== Upgrading SolrMarc ====
  
 Manually upgrading SolrMarc to a later 3.x version is simply a matter of updating import/solrmarc-core.jar and any necessary dependencies found in import/lib. Manually upgrading SolrMarc to a later 3.x version is simply a matter of updating import/solrmarc-core.jar and any necessary dependencies found in import/lib.
 ===== Customizing Import Mappings ===== ===== 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 [[https://github.com/solrmarc/solrmarc/wiki|SolrMarc documentation]] for details on how this works.+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 [[https://github.com/solrmarc/solrmarc/wiki|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.  For more details, see [[indexing:solrmarc:local_marc_mappings|local MARC mappings]].+While editing or overriding marc.properties is possible, a preferred technique is to instead add custom settings to 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®.  For more details, see [[indexing:solrmarc:local_marc_mappings|local MARC mappings]].
  
 You can use [[development:architecture:solr_index_schema#dynamic_field_suffixes]] as part of your custom field names in your marc_local.properties file. This will enable you to add fields to the marc_local.properties file without having to modify schema.xml or restart Solr. To do this, name the custom field with the appropriate suffix for the data type you need. Otherwise, be sure to update schema.xml to define the custom fields, and also restart Solr.  You can use [[development:architecture:solr_index_schema#dynamic_field_suffixes]] as part of your custom field names in your marc_local.properties file. This will enable you to add fields to the marc_local.properties file without having to modify schema.xml or restart Solr. To do this, name the custom field with the appropriate suffix for the data type you need. Otherwise, be sure to update schema.xml to define the custom fields, and also restart Solr. 
- 
- 
- 
 ===== Customizing Translation Maps ===== ===== 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 [[https://github.com/solrmarc/solrmarc/wiki/Translation-maps|SolrMarc documentation]] for details on how to specify a translation map in the marc.properties file. 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 [[https://github.com/solrmarc/solrmarc/wiki/Translation-maps|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+Translation maps are found in the import/translation_maps directory and can be overridden in the [[configuration:local_settings_directory|local settings directory]].
- +
-Starting with VuFind 2.x, translation maps can be overridden in the [[configuration:local_settings_directory|local settings 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 ===== ===== Customizing Format Determination =====
  
-One of the most commonly-requested VuFind customizations involves changing the way record formats are assigned. The method for this depends on your VuFind version.+One of the most commonly-requested VuFind® customizations involves changing the way record formats are assigned. The method for this depends on your VuFind® version.
  
-==== VuFind 6.0 and newer ====+==== VuFind® 6.0 and newer ====
  
-VuFind 6.0 replaces the getFormat method with getFormats (to return multiple values when appropriate). The advice below for VuFind 4.0 and newer remains relevant; just be sure to override the appropriate method.+VuFind® 6.0 replaces the getFormat method with getFormats (to return multiple values when appropriate). The advice below for VuFind® 4.0 and newer remains relevant; just be sure to override the appropriate method.
  
-==== VuFind 4.0 and newer ====+==== VuFind® 4.0 and newer ====
  
-More recent versions of VuFind determine formats using a getFormat function found in [[https://github.com/vufind-org/vufind/blob/master/import/index_java/src/org/vufind/index/FormatCalculator.java|FormatCalculator.java]]. You can override this file in your [[configuration:local_settings_directory|local settings directory]] to adjust the behavior.+More recent versions of VuFind® determine formats using a getFormat function found in [[https://github.com/vufind-org/vufind/blob/dev/import/index_java/src/org/vufind/index/FormatCalculator.java|FormatCalculator.java]]. You can override this file in your [[configuration:local_settings_directory|local settings directory]] to adjust the behavior.
  
   - Copy import/index_java/src/org/vufind/index/FormatCalculator.java into the import/index_java/src/edu/myuniversity/index (replacing edu/myuniversity with an appropriate domain for your institution) subdirectory of your [[configuration:local_settings_directory|local settings directory]] and edit it to customize the behavior as needed.  Be sure to adjust the package declaration at the top of the file to match the directory path you created, so you can differentiate your local indexing class from the core one. The MARC access is accomplished with the [[http://marc4j.tigris.org/|MARC4J]] library.   - Copy import/index_java/src/org/vufind/index/FormatCalculator.java into the import/index_java/src/edu/myuniversity/index (replacing edu/myuniversity with an appropriate domain for your institution) subdirectory of your [[configuration:local_settings_directory|local settings directory]] and edit it to customize the behavior as needed.  Be sure to adjust the package declaration at the top of the file to match the directory path you created, so you can differentiate your local indexing class from the core one. The MARC access is accomplished with the [[http://marc4j.tigris.org/|MARC4J]] library.
   - 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 a local copy of the translation map found in import/translation_maps/format_map.properties.   - 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 a local copy of the translation map found in import/translation_maps/format_map.properties.
-  - If SolrMarc has difficulty finding your custom code, you can edit a local copy of import/marc_local.properties to ensure that VuFind loads the appropriate class. This could look like:+  - If SolrMarc has difficulty finding your custom code, you can edit a local copy of import/marc_local.properties to ensure that VuFind® loads the appropriate class. This could look like:
  
   format = custom(edu.myuniversity.index.FormatCalculator), getFormat, format_map.properties   format = custom(edu.myuniversity.index.FormatCalculator), getFormat, format_map.properties
  
-==== VuFind 3.x and earlier ====+==== VuFind® 3.x and earlier ====
  
-By default, formats are generated in older versions of VuFind 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:+By default, formats are generated in older versions of VuFind® 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:
  
   - Copy import/index_scripts/format.bsh into the import/index_scripts subdirectory of your [[configuration:local_settings_directory|local settings directory]] and edit it 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 [[http://marc4j.tigris.org/|MARC4J]] library.   - Copy import/index_scripts/format.bsh into the import/index_scripts subdirectory of your [[configuration:local_settings_directory|local settings directory]] and edit it 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 [[http://marc4j.tigris.org/|MARC4J]] library.
   - 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 a local copy of the translation map found in import/translation_maps/format_map.properties.   - 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 a local copy of the translation map found in import/translation_maps/format_map.properties.
-  - Uncomment the format line (format = script(format.bsh), getFormat, format_map.properties) in a local copy of import/marc_local.properties to ensure that VuFind imports using the custom BeanShell version of getFormat instead of the built-in SolrMarc version.+  - Uncomment the format line (format = script(format.bsh), getFormat, format_map.properties) in a local copy of 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 ===== ===== Custom Indexing Functions =====
Line 73: Line 65:
 ==== BeanShell Scripts ==== ==== BeanShell Scripts ====
  
-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:+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:
  
 <code> <code>
Line 82: Line 74:
 ==== SolrMarc Mixins ==== ==== SolrMarc Mixins ====
  
-Starting with VuFind 1.4, you can also write compiled Java mixin objects to define custom functionality. These should offer better performance than BeanShell, though they are slightly more complex to implement. See the README in the mixin development kit at the [[https://code.google.com/p/solrmarc/downloads/list|SolrMarc download page]] for more details.+Starting with VuFind® 1.4, you can also write compiled Java mixin objects to define custom functionality. These should offer better performance than BeanShell, though they are slightly more complex to implement. See the README in the mixin development kit at the [[https://code.google.com/p/solrmarc/downloads/list|SolrMarc download page]] for more details.
 ===== Customizing Record IDs ===== ===== Customizing Record IDs =====
  
Line 97: Line 89:
  
 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 [[http://wiki.code4lib.org/index.php/Working_with_MaRC|Working with MARC]] page for some tools to help you with MARC manipulation. 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 [[http://wiki.code4lib.org/index.php/Working_with_MaRC|Working with MARC]] page for some tools to help you with MARC manipulation.
 +
 +===== Troubleshooting =====
 +
 +See the [[indexing:solrmarc:troubleshooting]] page for more details.
 ---- struct data ---- ---- struct data ----
 +properties.Page Owner : 
 ---- ----
  
indexing/solrmarc.1558032183.txt.gz · Last modified: 2019/05/16 18:43 by demiankatz