public virtual void PostCreate(BooleanQuery q)
{
BooleanClause[] c = q.Clauses;
int opt = 0;
for (int i = 0; i < c.Length; i++)
{
if (c[i].Occur_ == BooleanClause.Occur.SHOULD)
{
opt++;
}
}
q.MinimumNumberShouldMatch = Random().Next(opt + 2);
if (Random().NextBoolean())
{
// also add a random negation
Term randomTerm = new Term(Field, Vals[Random().Next(Vals.Length)]);
q.Add(new TermQuery(randomTerm), BooleanClause.Occur.MUST_NOT);
}
}
}