org.apache.lucene.index

## Class MultiReader

- java.lang.Object
- - org.apache.lucene.index.IndexReader
  - - org.apache.lucene.index.CompositeReader
    - - org.apache.lucene.index.BaseCompositeReader<IndexReader>
      - - org.apache.lucene.index.MultiReader

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class MultiReader
      extends BaseCompositeReader<IndexReader>

  A `CompositeReader` which reads multiple indexes, appending their content. It can be used to create a view on several sub-readers (like `DirectoryReader`) and execute searches on it.

  For efficiency, in this API documents are often referred to via document numbers, non-negative integers which each name a unique document in the index. These document numbers are ephemeral -- they may change as documents are added to and deleted from an index. Clients should thus not rely on a given document having the same number between sessions.

  NOTE: `IndexReader` instances are completely thread safe, meaning multiple threads can call any of its methods, concurrently. If your application requires external synchronization, you should not synchronize on the `IndexReader` instance; use your own (non-Lucene) objects instead.

- - ### Nested Class Summary

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

      `IndexReader.ReaderClosedListener`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultiReader(IndexReader... subReaders)` Construct a MultiReader aggregating the named set of (sub)readers.
    `MultiReader(IndexReader[] subReaders, boolean closeSubReaders)` Construct a MultiReader aggregating the named set of (sub)readers.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `doClose()` Implements close.

    - ### Methods inherited from class org.apache.lucene.index.BaseCompositeReader

      `docFreq, document, getSequentialSubReaders, getTermVectors, hasDeletions, maxDoc, numDocs, readerBase, readerIndex, totalTermFreq`

    - ### Methods inherited from class org.apache.lucene.index.CompositeReader

      `getContext, toString`

    - ### Methods inherited from class org.apache.lucene.index.IndexReader

      `addReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getCombinedCoreAndDeletesKey, getCoreCacheKey, getRefCount, getTermVector, hashCode, incRef, leaves, numDeletedDocs, open, open, open, open, open, registerParentReader, removeReaderClosedListener, tryIncRef`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MultiReader

          public MultiReader(IndexReader... subReaders)

      Construct a MultiReader aggregating the named set of (sub)readers.

      Note that all subreaders are closed if this Multireader is closed.

      Parameters:
        `subReaders` - set of (sub)readers

    - #### MultiReader

          public MultiReader(IndexReader[] subReaders,
                     boolean closeSubReaders)

      Construct a MultiReader aggregating the named set of (sub)readers.

      Parameters:
        `subReaders` - set of (sub)readers; this array will be cloned.
        `closeSubReaders` - indicates whether the subreaders should be closed when this MultiReader is closed

  - ### Method Detail

    - #### doClose

          protected void doClose()
                          throws IOException

      Description copied from class: `IndexReader`
      Implements close.
      Specified by:
        `doClose` in class `IndexReader`
      Throws:
        `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.