For the past couple of days, I've been playing with Casey Durfee's code that uses Solr and Django to offer a faceted catalogue. My challenge? Turn a dense set of code focused on Dewey and Horizon ILS into a catalogue that speaks LC and Unicorn. Additionally, I want it to serve as both a proof of several technologies (Solr for faceted searching and Django as a Web application framework) to my colleagues and as a reasonable backup catalogue for when our main catalogue fails (as it all too often does).
I emailed Casey today to tell him that I had a number of patches to contribute as a result of my experiments. It turns out that he's not really interested in pursuing this particular project much further, so he gave me his blessing to take his throwaway code and do whatever I want with it. Thus, the emergence of the FacBackOPAC project on code.google.com. If there's a grant out there for worst project name ever, this project's in the running... Anyways, I have contorted Casey's code so that it supports both Dewey and LC, and with a bit more torture it should be flexible enough to support both Horizon and Unicorn.
Right now I've twisted it all the way to meet my Unicorn needs and consequently have broken Horizon support, but it won't take much to make it support Horizon again - or any other ILS, for that matter. The main requirement is that you have to be able to get your MARC records and holdings out of your ILS. A secondary requirement is to know how to create links to detailed item views in your current catalogue, because this thing does not yet have any current awareness about item status.
There. My itch has been scratched for the time being. Go play with the FacBackOPAC project -- I even have (very) rough documentation on how to get the pieces installed andthe MARC records indexed, although you'll have to dig through the source in the Django catalog tree to overcome some hardcoded strings and URLs for the time being. Don't worry, pulling that hardcoded stuff out of the templates is high on the list of priorities.
So, a huge thank you to Casey for freeing this code and making this possible. For something he considers throwaway code, I've learned a lot from walking through it and making it start to meet my needs. I hope it helps you, too!
Update 2007-03-18:
Edited links to point to the FacBackOPAC project page, rather than the wiki (which is subject to change, and which did -- breaking the dang links in the original version of this story. Argh!)
Couple of issues:
1. The FacBackOPAC links in the post are wrongly pointed. I had to go to the google code directly
2. I am dealing with pure XML (i.e not MARC record my own XML records)... Can I still use your code if so how and where should i modify things.. I am just getting started with python so any pointer would be great.
3. There is a python client under trunk/client/python .. its experimental but you are not using it at all?
Thanks for the reply.
Rajesh
Error: Can't find the file 'settings.py' in the directory containing 'manage.py'. It appears you've customized things.
You'll have to run django-admin.py, passing it your settings module.
after following the instruction on wiki. I guess this is one of the task you are working on i.e moving things to settings.
Anyway I will try again later.
It's great to see your interest in the FacBackOPAC project!
I opened (and have now fixed) an issue in the project based on your error report: http://code.google.com/p/fac-back-opac/issues/detail?id=5
Thanks for the error report -- things should run better for you now.
I also updated the links in my blog post to point to the project page rather than the "home" page in the wiki (which I had subsequently deleted, ergo the broken links).
As far as using your own XML as a source rather than MARC records, I'm not sure that there's much of this project that would be reusable for you -- the indexing code is very strongly oriented towards traditional bibliographic metadata, and most of the meat of the project is in the indexer. I suppose you could reuse most of the Django catalog app if your XML does describe bibliographic objects and you can map its fields to the schema defined for FacBackOPAC.
I took a quick look at the pure Python Solr client back at code4lib but haven't been back yet... at the moment the current code that I inherited from Casey works well, so it's not an area I feel I need to focus on at the moment.
Thanks again for your interest! I've added the FacBackOPAC Google Group in case you (or anyone else) prefers to discuss problems / enhancements someone other than on my blog