I’ve been playing with the Lucene text indexing system (in particular, I’m playing with PyLucene, which is a GCJ compiled version of Lucene with Python bindings). Lucene does text searching really well and its fast!
Eventually I’d like to use Lucene to power the MusicBrainz searches as was as building a copy of it into Picard. Picard? Yes! Lucene is so good, that you can give it a track title and chances are its going to find the right track. My idea is this:
- Cluster new files and determine which artists these files cover.
- Download and cache the metadata for the artists locally, and build a lucene index of it.
- Throw each of the tracks at lucene to see what it can match.
- If nothing matches, maybe do a full DB search via the web service or do a TRM calculation.
I’m excited by this — the proof of concept looks fabulous. Executing it on the full scale where things are getting cached and locally indexed, is going to be a fair amount of work. Unfortunately.
But, this gives me hope that Picard will have some serious brainz under the hood. 🙂