Do you have any thoughts, requirements, (or code) for plugging in an alternate storage layer, say an RDBMS like mySQL or Oracle, in place of or alongside the filer/indexer layers in Xindice?
This is already a part of the architecture. Look at org.apache.xindice.core.filer.Filer for a start. At one point, I wrote an RDBMS mapping Filer as well as a Filer that layered on top of Borland's JDataStore. There are also three additional filers included with Xindice, a FSFiler for File System layering, a MemFiler for in-memory temporary collections, and an experimental HashFiler that does hashed file access instead of BTree.
The only major gotcha will be whether or not you want to emit text or the dbXML compressed format. If it's only going to be text, you shouldn't run into any major problems. If it's compressed, you'll have to deal with the DOM Compression classes.
-- Tom Bradford - http://www.tbradford.org Developer - Apache Xindice (Native XML Database) Creator - Project Labrador (XML Object Broker)