Print

Print


Jonathan Rochkind (Johns Hopkins) and Bill Dueber (University of 
Michigan), are happy to announce a robust, feature-complete beta release 
of "traject," a tool for indexing MARC data to Solr.

traject, in the vein of solrmarc, allows you to define your indexing 
rules using simple macro and translation files. However, traject runs 
under JRuby and is "ruby all the way down," so you can easily provide 
additional logic by simply requiring ruby files.

There's a sample configuration file to give you a feel for traject[1].

You can view the code[2] on github, and easily install it as a (jruby) 
gem using "gem install traject".

traject is in a beta release hoping for feedback from more testers prior 
to a 1.0.0 release, but it is already being used in production to 
generate the HathiTrust (metadata-lookup) Catalog 
(http://www.hathitrust.org/). traject was developed using a test-driven 
approach and has undergone both continuous integration and an extensive 
benchmarking/profiling period to keep it fast. It is also well covered 
by high-quality documentation.

Feedback is very welcome on all aspects of traject including 
documentation, ease of getting started, features, any problems you have, 
etc.

What we think makes traject great:

* It's all just well-crafted and documented ruby code; easy to program, 
easy to read, easy to modify (the whole code base is only 6400 lines of 
code, more than a third of which is tests)
* Fast. Traject by default indexes using multiple threads, so you can 
use all your cores!
* Decoupled from specific readers/writers, so you can use ruby-marc or 
marc4j to read, and write to solr, a debug file, or anywhere else you'd 
like with little extra code.
* Designed so it's easy to test your own code and distribute it as a gem

We're hoping to build up an ecosystem around traject and encourage 
people to ask questions and contribute code (either directly to the 
project or via releasing plug-in gems).

[1] 
https://github.com/traject-project/traject/blob/master/test/test_support/demo_config.rb
[2] http://github.com/traject-project/traject