43
43
import org .apache .lucene .index .LeafReaderContext ;
44
44
import org .apache .lucene .index .MergePolicy ;
45
45
import org .apache .lucene .index .SegmentInfos ;
46
+ import org .apache .lucene .index .TieredMergePolicy ;
46
47
import org .apache .lucene .search .Sort ;
47
48
import org .apache .lucene .search .SortField ;
48
49
import org .apache .lucene .store .Directory ;
@@ -59,13 +60,17 @@ public class ShuffleForcedMergePolicyTests extends BaseMergePolicyTestCase {
59
60
public void testDiagnostics () throws IOException {
60
61
try (Directory dir = newDirectory ()) {
61
62
IndexWriterConfig iwc = newIndexWriterConfig ().setMaxFullFlushMergeWaitMillis (0 );
62
- MergePolicy mp = new ShuffleForcedMergePolicy (newTieredMergePolicy ());
63
+ TieredMergePolicy tieredMergePolicy = newTieredMergePolicy ();
64
+ // ensure only trigger one Merge when flushing, and there are remaining segments to be force merged
65
+ tieredMergePolicy .setSegmentsPerTier (8 );
66
+ tieredMergePolicy .setMaxMergeAtOnce (8 );
67
+ MergePolicy mp = new ShuffleForcedMergePolicy (tieredMergePolicy );
63
68
iwc .setMergePolicy (mp );
64
69
boolean sorted = random ().nextBoolean ();
65
70
if (sorted ) {
66
71
iwc .setIndexSort (new Sort (new SortField ("sort" , SortField .Type .INT )));
67
72
}
68
- int numDocs = atLeast ( 100 );
73
+ int numDocs = 90 + random (). nextInt ( 10 );
69
74
70
75
try (IndexWriter writer = new IndexWriter (dir , iwc )) {
71
76
for (int i = 0 ; i < numDocs ; i ++) {
0 commit comments