private void CheckNoMaxClauseLimitation(MultiTermQuery.RewriteMethod method) { int savedMaxClauseCount = BooleanQuery.MaxClauseCount; BooleanQuery.MaxClauseCount = 3; MultiTermQuery mtq = TermRangeQuery.NewStringRange("data", "2", "7", true, true); mtq.MultiTermRewriteMethod = (method); try { MultiSearcherDupls.Rewrite(mtq); } finally { BooleanQuery.MaxClauseCount = savedMaxClauseCount; } }
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); }
private void CheckMaxClauseLimitation(MultiTermQuery.RewriteMethod method, [CallerMemberName] string memberName = "") { int savedMaxClauseCount = BooleanQuery.MaxClauseCount; BooleanQuery.MaxClauseCount = 3; MultiTermQuery mtq = TermRangeQuery.NewStringRange("data", "2", "7", true, true); mtq.MultiTermRewriteMethod = (method); try { MultiSearcherDupls.Rewrite(mtq); Assert.Fail("Should throw BooleanQuery.TooManyClauses"); } catch (BooleanQuery.TooManyClausesException e) { // Maybe remove this assert in later versions, when internal API changes: Assert.AreEqual("CheckMaxClauseCount", new StackTrace(e, false).GetFrames()[0].GetMethod().Name); //, "Should throw BooleanQuery.TooManyClauses with a stacktrace containing checkMaxClauseCount()"); } finally { BooleanQuery.MaxClauseCount = savedMaxClauseCount; } }