Re: Control the number of segments without using forceMerge.

2021-07-05 Thread Alex K
After some more reading, the NoMergePolicy seems to mostly solve my problem. I've configured my IndexWriterConfig with: .setMaxBufferedDocs(Integer.MAX_VALUE) .setRAMBufferSizeMB(Double.MAX_VALUE) .setMergePolicy(NoMergePolicy.INSTANCE) With this config I consistently end up with a n

Re: Control the number of segments without using forceMerge.

2021-07-05 Thread Alex K
Ok, so it sounds like if you want a very specific number of segments you have to do a forceMerge at some point? Is there some simple summary on how segments are formed in the first place? Something like, "one segment is created every time you flush from an IndexWriter"? Based on some experimenting

RE: Control the number of segments without using forceMerge.

2021-07-05 Thread Uwe Schindler
If you want an exact number of segments, create 64 indexes, each forceMerged to one segment. After that use MultiReader to create a view on all separate indexes. MultiReaders's contents are always flattened to a list of those 64 indexes. But keep in mind that this should only ever be done with *