Yes. Actually I quite like the idea used by CacheQuery which is an Iterable. I'm thinking about copying that idea or even making a common base interface for these two. Right now CacheQuery has referneces to some Lucene specifics which should not make it into the new Query interface, so CacheQuery should extend it and add those specifics.