|
From: Brian M. <br...@ap...> - 2005-04-02 21:19:59
|
I have a set of classes for Apache Lucene integration with Spring (reasonable factory beans, a LuceneTemplate, and LuceneUtils) which are designed to a) make it easier to work with Lucene from Spring (the template in particular optimizes common cases nicely, and does the resource open/closing like the other templates) b) make lucene index modifications abide by Spring's transaction system by doing write-behind on adds (which are ignored on rollback) and rolling back deletes via a transaction synchronization. I'd like to contribute them to Spring (if ya'll are interested), but to clean up the code and design some first, I have a few questions: 1) Should transaction binding be "on" by default? Lucene is semi-transactional by nature (supports r and r/w locks, changes are flushed on reader/writer closing, etc), but I am not sure people expect Lucene to be bound by other transactions. Potential confusion. 2) What is a good tx manager to use for the unit tests? I am using a modified version of the TestTransactionManager in Spring right now (just changed to make it accessible and use synchonrizations). It is much easier to use the TransactionTemplate than to manually manage the tx's for tests =) 3) Not all of the ~interesting things you can do in lucene are convenient to expose (splitting indexes etc) from the configuration. Right now, rather than make a hack, the factory beans only support single indexes. The only multi-index thing exposed right now is really a configuration option on the SearcherBean which allows for multiple indexes and a MultiSearcher ~transparently. Thanks! -Brian |