Package org.apache.lucene.index

# Class DocIDMerger<T extends DocIDMerger.Sub>

java.lang.Object
org.apache.lucene.index.DocIDMerger<T>

public abstract class DocIDMerger<T extends DocIDMerger.Sub> extends Object
Utility class to help merging documents from sub-readers according to either simple concatenated (unsorted) order, or by a specified index-time sort, skipping deleted documents and remapping non-deleted documents.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `DocIDMerger.Sub`
  Represents one sub-reader being merged

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract T`
  `next()`
  Returns null when done.
  `static <T extends DocIDMerger.Sub>
  DocIDMerger<T>`
  `of(List<T> subs, boolean indexIsSorted)`
  Construct this from the provided subs
  `static <T extends DocIDMerger.Sub>
  DocIDMerger<T>`
  `of(List<T> subs, int maxCount, boolean indexIsSorted)`
  Construct this from the provided subs, specifying the maximum sub count
  `abstract void`
  `reset()`
  Reuse API, currently only used by postings during merge

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

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

- ## Method Details

  - ### of

    public static <T extends DocIDMerger.Sub> DocIDMerger<T> of(List<T> subs, int maxCount, boolean indexIsSorted) throws IOException
    Construct this from the provided subs, specifying the maximum sub count
    Throws:
      `IOException`

  - ### of

    public static <T extends DocIDMerger.Sub> DocIDMerger<T> of(List<T> subs, boolean indexIsSorted) throws IOException
    Construct this from the provided subs
    Throws:
      `IOException`

  - ### reset

    public abstract void reset() throws IOException
    Reuse API, currently only used by postings during merge
    Throws:
      `IOException`

  - ### next

    public abstract T next() throws IOException
    Returns null when done. NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.
    Throws:
      `IOException`