org.apache.lucene.index

## Class ExitableDirectoryReader

- java.lang.Object
- - org.apache.lucene.index.IndexReader
  - - org.apache.lucene.index.CompositeReader
    - - org.apache.lucene.index.BaseCompositeReader<LeafReader>
      - - org.apache.lucene.index.DirectoryReader
        - - org.apache.lucene.index.FilterDirectoryReader
          - - org.apache.lucene.index.ExitableDirectoryReader

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class ExitableDirectoryReader
      extends FilterDirectoryReader

  The `ExitableDirectoryReader` wraps a real index `DirectoryReader` and allows for a `QueryTimeout` implementation object to be checked periodically to see if the thread should exit or not. If `QueryTimeout.shouldExit()` returns true, an `ExitableDirectoryReader.ExitingReaderException` is thrown.
  See Also:
    `TimeLimitingCollector`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ExitableDirectoryReader.ExitableFilterAtomicReader` Wrapper class for another FilterAtomicReader.
    `static class` | `ExitableDirectoryReader.ExitableSubReaderWrapper` Wrapper class for a SubReaderWrapper that is used by the ExitableDirectoryReader.
    `static class` | `ExitableDirectoryReader.ExitableTerms` Wrapper class for another Terms implementation that is used by ExitableFields.
    `static class` | `ExitableDirectoryReader.ExitableTermsEnum` Wrapper class for TermsEnum that is used by ExitableTerms for implementing an exitable enumeration of terms.
    `static class` | `ExitableDirectoryReader.ExitingReaderException` Exception that is thrown to prematurely terminate a term enumeration.

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

      `FilterDirectoryReader.SubReaderWrapper`

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

      `IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener`

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.index.FilterDirectoryReader

      `in`

    - ### Fields inherited from class org.apache.lucene.index.DirectoryReader

      `directory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExitableDirectoryReader(DirectoryReader in, QueryTimeout queryTimeout)` Constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected DirectoryReader` | `doWrapDirectoryReader(DirectoryReader in)` Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader.
    `IndexReader.CacheHelper` | `getReaderCacheHelper()` Optional method: Return a `IndexReader.CacheHelper` that can be used to cache based on the content of this reader.
    `String` | `toString()`
    `static DirectoryReader` | `wrap(DirectoryReader in, QueryTimeout queryTimeout)` Wraps a provided DirectoryReader.

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

      `doClose, doOpenIfChanged, doOpenIfChanged, doOpenIfChanged, getDelegate, getIndexCommit, getVersion, isCurrent, unwrap`

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

      `directory, indexExists, listCommits, open, open, open, open, openIfChanged, openIfChanged, openIfChanged, openIfChanged`

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

      `docFreq, document, getDocCount, getSequentialSubReaders, getSumDocFreq, getSumTotalTermFreq, getTermVectors, maxDoc, numDocs, readerBase, readerIndex, totalTermFreq`

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

      `getContext`

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

      `close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, registerParentReader, tryIncRef`

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

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

- - ### Constructor Detail

    - #### ExitableDirectoryReader

          public ExitableDirectoryReader(DirectoryReader in,
                                         QueryTimeout queryTimeout)
                                  throws IOException

      Constructor
      Parameters:
        `in` - DirectoryReader that this ExitableDirectoryReader wraps around to make it Exitable.
        `queryTimeout` - The object to periodically check if the query should time out.
      Throws:
        `IOException`

  - ### Method Detail

    - #### doWrapDirectoryReader

          protected DirectoryReader doWrapDirectoryReader(DirectoryReader in)
                                                   throws IOException

      Description copied from class: `FilterDirectoryReader`
      Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader. Implementations should just return an instantiation of themselves, wrapping the passed in DirectoryReader.
      Specified by:
        `doWrapDirectoryReader` in class `FilterDirectoryReader`
      Parameters:
        `in` - the DirectoryReader to wrap
      Returns:
        the wrapped DirectoryReader
      Throws:
        `IOException`

    - #### wrap

          public static DirectoryReader wrap(DirectoryReader in,
                                             QueryTimeout queryTimeout)
                                      throws IOException

      Wraps a provided DirectoryReader. Note that for convenience, the returned reader can be used normally (e.g. passed to `DirectoryReader.openIfChanged(DirectoryReader)`) and so on.
      Throws:
        `IOException`

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

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `CompositeReader`

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