
marvin at rectangular
Jul 1, 2007, 4:25 PM
Views: 866
Permalink
|
On Jul 1, 2007, at 10:37 AM, Hans Dieter Pearcey wrote: > I've just uploaded KSx-IndexManager 0.001. I see that this module is now visible on search.cpan.org. (: ...and so is KSx::Searcher::Abstract. :) Cool stuff! The way it combines both indexing and searching reminds me of Ferret::Index [.that's a Ruby class for those of you unfamiliar with Ferret] and Plucene::Simple (upon which KinoSearch::Simple is loosely based). It's more like Ferret::Index, though, in that it doesn't hide the interfaces of the classes it replaces -- you still need to grok Schema, InvIndexer, Searcher, Hits, and implicitly, FieldSpec and PolyAnalyzer in order to use it. > I wrote this because I wanted to call fewer methods in code that > dealt with > invindexes (both reading and writing). I can certainly see how using it will result in less code. You and I appear to have different, but complementary ideas about class design, and I'm cheesed to see your alternative approach. :) KinoSearch has a few convenience methods here and there, notably Schema->open and friends. For the most part, though, I try to avoid them. * Fewer moving parts, so fewer things can go wrong. * Less work before users feel confident that they've grokked an entire class and acquire a sense of mastery over it. Convenience methods are a burden if you don't actually use them, and different people often have different ideas about what's convenient. I think KinoSearch itself needs to stay streamlined and low-level enough that people such as yourself have no trouble assembling KS components into larger tools. However, I also find a lot of what you've done attractive. Those write() and append() methods are pretty slick! On some level, it would be nice to add them to InvIndexer itself, along with add_docs() -- but having them available via your module distro is even better! > Compare eg/invindex.pl to KinoSearch's > sample/invindex.plx to get an idea of what IndexManager covers. I think that file is actually missing from your distro. It's easy for me at least to see what's going on, but can you please forward some sample code to the list? In addition to the minimalist apps, I'd like to see an example of how you would use KSx::IndexManager::Plugin::Partition to choose one invindex from among many at both index-time and search-time. KS has MultiSearcher, but it doesn't provide a stock answer for how to multiplex indexing; perhaps you've come up with a good model. Marvin Humphrey Rectangular Research http://www.rectangular.com/
|