====== Support for New Record Formats ====== :!: // This page refers to VuFind 2.x and later; use of earlier versions is no longer recommended. // ===== Introduction ===== VuFind is currently bundled with a standard indexer ([[indexing:solrmarc|SolrMarc]]) that handles [[indexing:marc|MARC records]] quickly and efficently and a flexible XSLT processor for dealing with [[indexing:xml|XML documents]]. However, VuFind also has the capability to support any other form of metadata if you are willing to do at least one of two things: * write an indexer to get the data into VuFind's index (necessary!) * write a "Record Driver" to display that data appropriately within the VuFind interface (optional, if the index-based display meets your needs) ===== Indexer ===== Some general hints on how to create such an indexer are given here. Writing a custom indexer for other record formats may be done in almost any programming language. Steps to be done: * parse record format * map format entities to Solr index fields (see [[development:architecture:solr_index_schema|the index schema page]] for notes on VuFind's index schema; the MARC mappings in [[https://github.com/vufind-org/vufind/blob/dev/import/marc.properties|import/marc.properties]] should be helpful for understanding the meaning of the various fields) * create XMLish document out of these fields (see the [[http://wiki.apache.org/solr/UpdateXmlMessages|Solr Wiki]] for details) * POST document to Solr's update handler (FYI: it doesn't have to be a POST per se; you can use SOLR/Lucene APIs to add documents directly to the index which is much faster) ===== Record Display ===== Record display is handled by a family of "Record Driver" classes that extract information from the stored Solr fields and return it through a standard interface. See the [[development:plugins:record_drivers|Record Drivers]] page for more details.