private void CheckBoosts(MultiTermQuery.RewriteMethod method) { MultiTermQuery mtq = new MultiTermQueryAnonymousInnerClassHelper(this); mtq.MultiTermRewriteMethod = (method); Query q1 = Searcher.Rewrite(mtq); Query q2 = MultiSearcher.Rewrite(mtq); Query q3 = MultiSearcherDupls.Rewrite(mtq); if (VERBOSE) { Console.WriteLine(); Console.WriteLine("single segment: " + q1); Console.WriteLine("multi segment: " + q2); Console.WriteLine("multi segment with duplicates: " + q3); } Assert.IsTrue(q1.Equals(q2), "The multi-segment case must produce same rewritten query"); Assert.IsTrue(q1.Equals(q3), "The multi-segment case with duplicates must produce same rewritten query"); CheckBooleanQueryBoosts((BooleanQuery)q1); CheckBooleanQueryBoosts((BooleanQuery)q2); CheckBooleanQueryBoosts((BooleanQuery)q3); }
private void CheckDuplicateTerms(MultiTermQuery.RewriteMethod method) { MultiTermQuery mtq = TermRangeQuery.NewStringRange("data", "2", "7", true, true); mtq.MultiTermRewriteMethod = (method); Query q1 = Searcher.Rewrite(mtq); Query q2 = MultiSearcher.Rewrite(mtq); Query q3 = MultiSearcherDupls.Rewrite(mtq); if (VERBOSE) { Console.WriteLine(); Console.WriteLine("single segment: " + q1); Console.WriteLine("multi segment: " + q2); Console.WriteLine("multi segment with duplicates: " + q3); } Assert.IsTrue(q1.Equals(q2), "The multi-segment case must produce same rewritten query"); Assert.IsTrue(q1.Equals(q3), "The multi-segment case with duplicates must produce same rewritten query"); CheckBooleanQueryOrder(q1); CheckBooleanQueryOrder(q2); CheckBooleanQueryOrder(q3); }