public virtual void TestEarlyTermination_Mem() { int iters = AtLeast(5); IndexReader reader = writer.GetReader(); for (int i = 0; i < iters; ++i) { IndexSearcher searcher = NewSearcher(reader); ICollector collector = new CollectorAnonymousClass(this); searcher.Search(new MatchAllDocsQuery(), collector); } reader.Dispose(); }
public virtual void TestBooleanScorerMax() { Directory dir = NewDirectory(); RandomIndexWriter riw = new RandomIndexWriter(Random, dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))); int docCount = AtLeast(10000); for (int i = 0; i < docCount; i++) { Document doc = new Document(); doc.Add(NewField("field", "a", TextField.TYPE_NOT_STORED)); riw.AddDocument(doc); } riw.ForceMerge(1); IndexReader r = riw.GetReader(); riw.Dispose(); IndexSearcher s = NewSearcher(r); BooleanQuery bq = new BooleanQuery(); bq.Add(new TermQuery(new Term("field", "a")), Occur.SHOULD); bq.Add(new TermQuery(new Term("field", "a")), Occur.SHOULD); Weight w = s.CreateNormalizedWeight(bq); Assert.AreEqual(1, s.IndexReader.Leaves.Count); BulkScorer scorer = w.GetBulkScorer(s.IndexReader.Leaves[0], false, null); FixedBitSet hits = new FixedBitSet(docCount); AtomicInt32 end = new AtomicInt32(); ICollector c = new CollectorAnonymousClass(this, scorer, hits, end); while (end < docCount) { int inc = TestUtil.NextInt32(Random, 1, 1000); end.AddAndGet(inc); scorer.Score(c, end); } Assert.AreEqual(docCount, hits.Cardinality); r.Dispose(); dir.Dispose(); }
/// <summary> /// Creates a <see cref="CachingCollector"/> which does not wrap another collector. /// The cached documents and scores can later be replayed (<see cref="Replay(ICollector)"/>). /// </summary> /// <param name="acceptDocsOutOfOrder"> /// whether documents are allowed to be collected out-of-order </param> public static CachingCollector Create(bool acceptDocsOutOfOrder, bool cacheScores, double maxRAMMB) { ICollector other = new CollectorAnonymousClass(acceptDocsOutOfOrder); return(Create(other, cacheScores, maxRAMMB)); }