Package 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
TheExitableDirectoryReader
wraps a real indexDirectoryReader
and allows for aQueryTimeout
implementation object to be checked periodically to see if the thread should exit or not. IfQueryTimeout.shouldExit()
returns true, anExitableDirectoryReader.ExitingReaderException
is thrown.- See Also:
TimeLimitingCollector
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 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.DelegatingCacheHelper, 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
-
Fields inherited from class org.apache.lucene.index.BaseCompositeReader
subReadersSorter
-
-
Constructor Summary
Constructors Constructor Description ExitableDirectoryReader(DirectoryReader in, QueryTimeout queryTimeout)
Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DirectoryReader
doWrapDirectoryReader(DirectoryReader in)
Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader.IndexReader.CacheHelper
getReaderCacheHelper()
Optional method: Return aIndexReader.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, 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, storedFields, termVectors, 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, notifyReaderClosedListeners, numDeletedDocs, registerParentReader, tryIncRef
-
-
-
-
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 classFilterDirectoryReader
- 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 toDirectoryReader.openIfChanged(DirectoryReader)
) and so on.- Throws:
IOException
-
getReaderCacheHelper
public IndexReader.CacheHelper getReaderCacheHelper()
Description copied from class:IndexReader
Optional method: Return aIndexReader.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 classIndexReader
-
toString
public String toString()
- Overrides:
toString
in classCompositeReader
-
-