On Fri, Jan 09, 2009 at 08:11:31PM +0100, Karl Wettin wrote: > SSD is pretty close to RAM when it comes to seeking. Wouldn't that > mean that a bitset stored on an SSD would be more or less as fast as a > bitset in RAM?
Provided that your index can fit in the system i/o cache and stay there, you get the speed of RAM regardless of the underlying permanent storage type. There's no reason to wait on SSDs before implementing such a feature. One thing we've contemplated in Lucy/KS is a FilterWriter, which would write out cached bitsets at index time. Adding that on would look like something this: public class MyArchitecture extends Architecture { public ArrayList<SegDataWriter> segDataWriters(InvIndex invindex, Segment segment) { ArrayList<SegDataWriter> writers = super.segDataWriters(invindex, segment); writers.add(new FilterWriter(invindex, segment)); return writers; } } public class MySchema extends Schema { public Architecture architecture() { return new MyArchitecture(); } public MySchema() { TextField textFieldSpec = new TextField(new PolyAnalyzer("en")); specField("title", textFieldSpec); specField("content", textFieldSpec); } } IndexWriter writer = new IndexWriter(new MySchema().open("/path/to/index")); This isn't quite the same thing, because I believe you're talking about adaptively caching filters on the fly at search time. However, I expect this to work quite well when a finite set of filters is known in advance, e.g. for faceting categories. Marvin Humphrey --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org