Vu Find Beyond MARC discovering everything else Demian
Vu. Find Beyond MARC discovering everything else Demian Katz Vu. Find Developer demian. katz@villanova. edu
How Vu. Find Used to Work • MARC records were loaded into Solr. – Data parsed to fields for searching/faceting. – Full binary record stored in “fullrecord” field. • Solr was used for retrieving records. • Vu. Find’s PHP code made heavy use of “fullrecord” data for building displays.
What’s wrong with that? • MARC must die. • Not all searchable documents are MARC. • Code for pulling data from MARC is ugly.
Redesign Goals • Centralize MARC-specific code so it can be easily replaced. • Use stored Solr fields whenever possible. • Allow arbitrary metadata formats to coexist peacefully. • Make no assumptions about metadata content.
The Solution: Record Drivers • A class interface for displaying a document retrieved from Solr. • A new Solr field tells Vu. Find which Record Driver to instantiate for each document. • A default Record Driver can be written to display a document based solely on stored Solr fields.
One Key Design Decision • What should the Record Driver class contain? – Data-oriented methods (get. Title, get. Author, etc. ) – Screen-oriented methods (get. Search. Result, get. Staff. View, etc. )
The Answer: All of the Above interface Record. Interface public get. Search. Result() public get. Staff. View() class Index. Record … implements Record. Interface protected get. Author() protected get. Title() … class Marc. Record extends Index. Record protected get. Author() protected get. Title() …
Record Driver Benefits • • Large-scale changes are possible. Small-scale changes are easy. Allows object-specific behaviors. Eases maintenance of local customizations.
Next Problem… • Where’s the data? • MARC records traditionally come from an ILS export. • Solr. Marc traditionally takes care of populating Vu. Find’s Solr index.
Growing the Toolkit • The toolkit approach is important! • Problems to solve: – Obtain records from remote sources – Process harvested files – Index arbitrary XML
Tool #1: OAI-PMH Harvester • Purpose of tool: harvest metadata files from an OAI-PMH server into a directory. • Key feature: ID manipulation. • Key feature: delete support.
Tool #2: Batch Import Scripts • Purpose of tool: process all metadata files in a directory. • Easily achieved with Windows batch or Unix shell scripting. • Several sample scripts ship with Vu. Find.
Tool #3: XSLT Importer • Purpose of tool: with XSLT, map an XML document to a Solr document based on Vu. Find’s schema. • Key feature: PHP integration • Key feature: Aperture support • Several sample XSLT documents ship with Vu. Find (DSpace, OJS, Vu. DL).
Parting Thoughts • Understanding Record Drivers gives you a lot of control over Vu. Find. • Vu. Find should be able to index practically anything with a bit of effort. • Don’t be afraid to build your own tools!
More Information • Vu. Find: – http: //vufind. org • Demian Katz: – demian. katz@villanova. edu
- Slides: 15