public virtual void TestRewritesWithDuplicateTerms() { CheckDuplicateTerms(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE); CheckDuplicateTerms(MultiTermQuery.CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE); // use a large PQ here to only test duplicate terms and dont mix up when all scores are equal CheckDuplicateTerms(new MultiTermQuery.TopTermsScoringBooleanQueryRewrite(1024)); CheckDuplicateTerms(new MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite(1024)); // Test auto rewrite (but only boolean mode), so we set the limits to large values to always get a BQ MultiTermQuery.ConstantScoreAutoRewrite rewrite = new MultiTermQuery.ConstantScoreAutoRewrite(); rewrite.TermCountCutoff = int.MaxValue; rewrite.DocCountPercent = 100.0; CheckDuplicateTerms(rewrite); }