1313import org .apache .lucene .document .StringField ;
1414import org .apache .lucene .index .IndexReader ;
1515import org .apache .lucene .index .Term ;
16+ import org .apache .lucene .search .CollectorManager ;
1617import org .apache .lucene .search .IndexSearcher ;
1718import org .apache .lucene .search .MatchAllDocsQuery ;
1819import org .apache .lucene .search .ScoreMode ;
1920import org .apache .lucene .search .TermQuery ;
21+ import org .apache .lucene .search .TopDocs ;
2022import org .apache .lucene .search .TopScoreDocCollector ;
2123import org .apache .lucene .search .TotalHitCountCollector ;
2224import org .apache .lucene .search .Weight ;
@@ -39,7 +41,7 @@ public void setUp() throws Exception {
3941 super .setUp ();
4042 directory = newDirectory ();
4143 RandomIndexWriter writer = new RandomIndexWriter (random (), directory , newIndexWriterConfig ());
42- numDocs = randomIntBetween (10 , 100 );
44+ numDocs = randomIntBetween (900 , 1000 );
4345 for (int i = 0 ; i < numDocs ; i ++) {
4446 Document doc = new Document ();
4547 doc .add (new StringField ("field1" , "value" , Field .Store .NO ));
@@ -62,19 +64,19 @@ public void tearDown() throws Exception {
6264
6365 public void testFiltering () throws IOException {
6466 {
65- TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 100 );
67+ TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 1000 );
6668 searcher .search (new MatchAllDocsQuery (), topScoreDocCollector );
6769 assertEquals (numDocs , topScoreDocCollector .topDocs ().totalHits .value );
6870 }
6971 {
70- TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 100 );
72+ TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 1000 );
7173 TermQuery termQuery = new TermQuery (new Term ("field2" , "value" ));
7274 Weight filterWeight = termQuery .createWeight (searcher , ScoreMode .TOP_DOCS , 1f );
7375 searcher .search (new MatchAllDocsQuery (), new FilteredCollector (topScoreDocCollector , filterWeight ));
7476 assertEquals (1 , topScoreDocCollector .topDocs ().totalHits .value );
7577 }
7678 {
77- TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 100 );
79+ TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector .create (1 , 1000 );
7880 TermQuery termQuery = new TermQuery (new Term ("field1" , "value" ));
7981 Weight filterWeight = termQuery .createWeight (searcher , ScoreMode .TOP_DOCS , 1f );
8082 searcher .search (new MatchAllDocsQuery (), new FilteredCollector (topScoreDocCollector , filterWeight ));
@@ -96,4 +98,28 @@ public void testWeightIsNotPropagated() throws IOException {
9698 assertEquals (1 , totalHitCountCollector .getTotalHits ());
9799 }
98100 }
101+
102+ public void testManager () throws IOException {
103+ {
104+ CollectorManager <TopScoreDocCollector , TopDocs > topDocsManager = TopScoreDocCollector .createSharedManager (1 , null , 1000 );
105+ TopDocs topDocs = searcher .search (new MatchAllDocsQuery (), topDocsManager );
106+ assertEquals (numDocs , topDocs .totalHits .value );
107+ }
108+ {
109+ CollectorManager <TopScoreDocCollector , TopDocs > topDocsManager = TopScoreDocCollector .createSharedManager (1 , null , 1000 );
110+ TermQuery termQuery = new TermQuery (new Term ("field2" , "value" ));
111+ Weight filterWeight = termQuery .createWeight (searcher , ScoreMode .TOP_DOCS , 1f );
112+ CollectorManager <FilteredCollector , TopDocs > filteredManager = FilteredCollector .createManager (topDocsManager , filterWeight );
113+ TopDocs topDocs = searcher .search (new MatchAllDocsQuery (), filteredManager );
114+ assertEquals (1 , topDocs .totalHits .value );
115+ }
116+ {
117+ CollectorManager <TopScoreDocCollector , TopDocs > topDocsManager = TopScoreDocCollector .createSharedManager (1 , null , 1000 );
118+ TermQuery termQuery = new TermQuery (new Term ("field1" , "value" ));
119+ Weight filterWeight = termQuery .createWeight (searcher , ScoreMode .TOP_DOCS , 1f );
120+ CollectorManager <FilteredCollector , TopDocs > filteredManager = FilteredCollector .createManager (topDocsManager , filterWeight );
121+ TopDocs topDocs = searcher .search (new MatchAllDocsQuery (), filteredManager );
122+ assertEquals (numDocs , topDocs .totalHits .value );
123+ }
124+ }
99125}
0 commit comments