Hi All, I recently looked at the settings for the TieredMergedPolicy [1] and was puzzled by the note on the setSegmentsPerTier method indicating it should be equal or larger to the MaxMergeAtOnce settings, in order to not cause too many merges.
I understood segments per tier to indicate the goal number of segments for every segment-size tier. If a tier has more segments than that number, all these segments will be likely to be merged into a single one, which will then be part of the next tier. From point of view, it's efficient to be able to collapse the tier in one merge operation. However, if the MaxMergeAtOnce is smaller then the tier size it will not be able to do it in one merge but will take several/not produce an segment which is close to the ideal size of the bigger tier. Obviously that line of though conflicts with the note of setSegmentsPerTier's JavaDocs. Do I understand the setting/merge behavior correctly? Cheers, Boaz [1] http://lucene.apache.org/core/4_3_0/core/org/apache/lucene/index/TieredMergePolicy.html