is that to create a lucene query then you need to do the work of creating up a QueryParser and stuff like that. This is the bit that I'd like to avoid.

I agree with ou it's annoying (though you don't need a QP necessarily). I do think the DSL approach will work best.


Is it too round-about / tricky / yucky if we the user is to provide the specific class of the query? Or is that what you were suggesting anyway Manik?

e.g.: - 
CacheQuery cq = new QueryFactory(cache).getQuery(org.apache.lucene.query.BooleanQuery.class);

Well but then how do you pass each side which are Lucene queries themselves.