Greets,

A lot of KinoSearch has been converted over to C, and I've been pondering where the stopping point ought to be. So far, it seems like the lower-level readers/writers should be in C, but IndexWriter, IndexReader/SegReader/MultiReader, and Searchable/ Searcher/MultiSearcher should be native.

The reason I'm bringing this up now is that I'm about to expose Lock and LockFactory. They're implemented in C, but currently they are always constructed and their methods are always called at the native level. If that's guaranteed, it's possible to for users to override them with a native subclass (which is the whole point of LockFactory).

I think Analyzer should be handled the same way -- we might provide analyzers implemented in C, but we guarantee that they will always be invoked via the binding.

In addition to the subclassing flexibility, exceptions are still pretty easy to trace if you know where you left IndexWriter/ IndexReader -- but they're very difficult if e.g. all you know is that you read past EOF at some point during Searcher_Search().

Marvin Humphrey
Rectangular Research
http://www.rectangular.com/


Reply via email to