Class 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.

  • Constructor Details

    • MultiReader

      public MultiReader(IndexReader... subReaders) throws IOException
      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
      Throws:
      IOException
    • MultiReader

      public MultiReader(IndexReader[] subReaders, boolean closeSubReaders) throws IOException
      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
      Throws:
      IOException
    • MultiReader

      public MultiReader(IndexReader[] subReaders, Comparator<IndexReader> subReadersSorter, boolean closeSubReaders) throws IOException
      Construct a MultiReader aggregating the named set of (sub)readers.
      Parameters:
      subReaders - set of (sub)readers; this array will be cloned.
      subReadersSorter - – a comparator, that if not null is used for sorting sub readers.
      closeSubReaders - indicates whether the subreaders should be closed when this MultiReader is closed
      Throws:
      IOException
  • Method Details

    • getReaderCacheHelper

      public IndexReader.CacheHelper getReaderCacheHelper()
      Description copied from class: IndexReader
      Optional method: Return a IndexReader.CacheHelper that can be used to cache based on the content of this reader. Two readers that have different data or different sets of deleted documents will be considered different.

      A return value of null indicates that this reader is not suited for caching, which is typically the case for short-lived wrappers that alter the content of the wrapped reader.

      Specified by:
      getReaderCacheHelper in class IndexReader
    • doClose

      protected void doClose() throws IOException
      Description copied from class: IndexReader
      Implements close.
      Specified by:
      doClose in class IndexReader
      Throws:
      IOException