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
|