Package org.apache.lucene.index

# Class NoMergeScheduler

java.lang.Object
org.apache.lucene.index.MergeScheduler
org.apache.lucene.index.NoMergeScheduler

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public final class NoMergeScheduler extends MergeScheduler
A `MergeScheduler` which never executes any merges. It is also a singleton and can be accessed through `INSTANCE`. Use it if you want to prevent an `IndexWriter` from ever executing merges, regardless of the `MergePolicy` used. Note that you can achieve the same thing by using `NoMergePolicy`, however with `NoMergeScheduler` you also ensure that no unnecessary code of any `MergeScheduler` implementation is ever executed. Hence it is recommended to use both if you want to disable merges from ever happening.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.lucene.index.MergeScheduler

  `MergeScheduler.MergeSource`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final MergeScheduler`
  `INSTANCE`
  The single instance of `NoMergeScheduler`

  ### Fields inherited from class org.apache.lucene.index.MergeScheduler

  `infoStream`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MergeScheduler`
  `clone()`
  `void`
  `close()`
  Close this MergeScheduler.
  `Executor`
  `getIntraMergeExecutor(MergePolicy.OneMerge merge)`
  Provides an executor for parallelism during a single merge operation.
  `void`
  `merge(MergeScheduler.MergeSource mergeSource, MergeTrigger trigger)`
  Run the merges provided by `MergeScheduler.MergeSource.getNextMerge()`.
  `Directory`
  `wrapForMerge(MergePolicy.OneMerge merge, Directory in)`
  Wraps the incoming `Directory` so that we can merge-throttle it using `RateLimitedIndexOutput`.

  ### Methods inherited from class org.apache.lucene.index.MergeScheduler

  `message, verbose`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### INSTANCE

    public static final MergeScheduler INSTANCE
    The single instance of `NoMergeScheduler`

- ## Method Details

  - ### close

    public void close()
    Description copied from class: `MergeScheduler`
    Close this MergeScheduler.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `MergeScheduler`

  - ### merge

    public void merge(MergeScheduler.MergeSource mergeSource, MergeTrigger trigger)
    Description copied from class: `MergeScheduler`
    Run the merges provided by `MergeScheduler.MergeSource.getNextMerge()`.
    Specified by:
      `merge` in class `MergeScheduler`
    Parameters:
      `mergeSource` - the `IndexWriter` to obtain the merges from.
      `trigger` - the `MergeTrigger` that caused this merge to happen

  - ### wrapForMerge

    public Directory wrapForMerge(MergePolicy.OneMerge merge, Directory in)
    Description copied from class: `MergeScheduler`
    Wraps the incoming `Directory` so that we can merge-throttle it using `RateLimitedIndexOutput`.
    Overrides:
      `wrapForMerge` in class `MergeScheduler`

  - ### clone

    public MergeScheduler clone()
    Overrides:
      `clone` in class `Object`

  - ### getIntraMergeExecutor

    public Executor getIntraMergeExecutor(MergePolicy.OneMerge merge)
    Description copied from class: `MergeScheduler`
    Provides an executor for parallelism during a single merge operation. By default, the method returns a `SameThreadExecutorService` where all intra-merge actions occur in their calling thread.
    Overrides:
      `getIntraMergeExecutor` in class `MergeScheduler`