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
`static class` `DocIDMerger.Sub` Represents one sub-reader being merged

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`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 Detail

#### 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`