for (FullTextExpression e : and.list) {
Query x = getFullTextQuery(e, analyzer, reader);
// Lucene can't deal with "must(must_not(x))"
if (x instanceof BooleanQuery) {
BooleanQuery bq = (BooleanQuery) x;
for (BooleanClause c : bq.clauses()) {
q.add(c);
}
} else {
q.add(x, MUST);
}