Expert: a MergePolicy determines the sequence of /// primitive merge operations to be used for overall merge /// and optimize operations.
/// ///Whenever the segments in an index have been altered by /// {@link IndexWriter}, either the addition of a newly /// flushed segment, addition of many segments from /// addIndexes* calls, or a previous merge that may now need /// to cascade, {@link IndexWriter} invokes {@link /// #findMerges} to give the MergePolicy a chance to pick /// merges that are now required. This method returns a /// {@link MergeSpecification} instance describing the set of /// merges that should be done, or null if no merges are /// necessary. When IndexWriter.optimize is called, it calls /// {@link #findMergesForOptimize} and the MergePolicy should /// then return the necessary merges.
/// ///Note that the policy can return more than one merge at /// a time. In this case, if the writer is using {@link /// SerialMergeScheduler}, the merges will be run /// sequentially but if it is using {@link /// ConcurrentMergeScheduler} they will be run concurrently.
/// ///The default MergePolicy is {@link /// LogByteSizeMergePolicy}.
///NOTE: This API is new and still experimental /// (subject to change suddenly in the next release)
///