Thanks Hoss, this is very helpful, okay, dismax is not intended to do
anything with parens for semantics, they're just like any other char,
handled by analyzers.
I think you're right I cut and paste the wrong query before. Just for
the record, on 1.4.1:
qf=text
pf=
q=book (dog +(cat -frog))
<str name="parsedquery">
+((DisjunctionMaxQuery((text:book)~0.01)
DisjunctionMaxQuery((text:dog)~0.01)
DisjunctionMaxQuery((text:cat)~0.01)
-DisjunctionMaxQuery((text:frog)~0.01))~3) ()
</str>
<str name="parsedquery_toString">
+(((text:book)~0.01 (text:dog)~0.01 (text:cat)~0.01 -(text:frog)~0.01)~3) ()
</str>