Since someone suggested Swish-E as a replacement for Glimpse, I had a
look at this today. I'm extremely impressed. While Swish-E doesn't
report line numbers or text excerpts with its results, it is extremely
fast at indexing (and searching). I ran 2.4.15pre6 through it in just
over 2 minutes. Hooking it into genxref added 20% or somewhat to
that, but then you get the LXR backend-abstraction in between there.
(So it should work with the CVS backend, but I didn't test that.)
I've hooked Swish-E (version 2.1-dev-24) into "genxref" and "search"
with relatively little work. The implementation uses the old "one
freetext index database per version"-scheme, but could, with
relatively little work, have used the "one revision indexed only once
regardless of the amount of versions it belongs to"-scheme. I'm not
sure if it would be much of a win, but it might be worth looking into
sometime. I've kept the glimpse bits in "search" (which was a
horrible piece of code, it wasn't even under use strict) in case
someone wants to rehook Glimpse into LXR. Glimpse has some
advantages, as noted above, so I suppose it is conceivable.
Patch follows. Note though, that the way I've implemented this seems
to require Swish-E newer than the currently stable 2.0.5. This might
or might not be a problem. Anyway, have a look at it.
Arne.
|