|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.index.IndexReader org.apache.lucene.index.CompositeReader org.apache.lucene.index.BaseCompositeReader<AtomicReader> org.apache.lucene.index.DirectoryReader org.apache.lucene.index.FilterDirectoryReader
public abstract class FilterDirectoryReader
A FilterDirectoryReader wraps another DirectoryReader, allowing implementations to transform or extend it. Subclasses should implement doWrapDirectoryReader to return an instance of the subclass. If the subclass wants to wrap the DirectoryReader's subreaders, it should also implement a SubReaderWrapper subclass, and pass an instance to its super constructor.
Nested Class Summary | |
---|---|
static class |
FilterDirectoryReader.StandardReaderWrapper
A no-op SubReaderWrapper that simply returns the parent DirectoryReader's original subreaders. |
static class |
FilterDirectoryReader.SubReaderWrapper
Factory class passed to FilterDirectoryReader constructor that allows subclasses to wrap the filtered DirectoryReader's subreaders. |
Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader |
---|
IndexReader.ReaderClosedListener |
Field Summary | |
---|---|
protected DirectoryReader |
in
The filtered DirectoryReader |
Fields inherited from class org.apache.lucene.index.DirectoryReader |
---|
DEFAULT_TERMS_INDEX_DIVISOR, directory |
Constructor Summary | |
---|---|
FilterDirectoryReader(DirectoryReader in)
Create a new FilterDirectoryReader that filters a passed in DirectoryReader. |
|
FilterDirectoryReader(DirectoryReader in,
FilterDirectoryReader.SubReaderWrapper wrapper)
Create a new FilterDirectoryReader that filters a passed in DirectoryReader, using the supplied SubReaderWrapper to wrap its subreader. |
Method Summary | |
---|---|
protected void |
doClose()
Implements close. |
protected DirectoryReader |
doOpenIfChanged()
Implement this method to support DirectoryReader.openIfChanged(DirectoryReader) . |
protected DirectoryReader |
doOpenIfChanged(IndexCommit commit)
Implement this method to support DirectoryReader.openIfChanged(DirectoryReader,IndexCommit) . |
protected DirectoryReader |
doOpenIfChanged(IndexWriter writer,
boolean applyAllDeletes)
Implement this method to support DirectoryReader.openIfChanged(DirectoryReader,IndexWriter,boolean) . |
protected abstract DirectoryReader |
doWrapDirectoryReader(DirectoryReader in)
Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader. |
IndexCommit |
getIndexCommit()
Expert: return the IndexCommit that this reader has opened. |
long |
getVersion()
Version number when this IndexReader was opened. |
boolean |
isCurrent()
Check whether any new changes have occurred to the index since this reader was opened. |
Methods inherited from class org.apache.lucene.index.DirectoryReader |
---|
directory, indexExists, listCommits, open, open, open, open, open, 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, toString |
Methods inherited from class org.apache.lucene.index.IndexReader |
---|
addReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getCombinedCoreAndDeletesKey, getCoreCacheKey, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, registerParentReader, removeReaderClosedListener, tryIncRef |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final DirectoryReader in
Constructor Detail |
---|
public FilterDirectoryReader(DirectoryReader in)
in
- the DirectoryReader to filterpublic FilterDirectoryReader(DirectoryReader in, FilterDirectoryReader.SubReaderWrapper wrapper)
in
- the DirectoryReader to filterwrapper
- the SubReaderWrapper to use to wrap subreadersMethod Detail |
---|
protected abstract DirectoryReader doWrapDirectoryReader(DirectoryReader in)
in
- the DirectoryReader to wrap
protected final DirectoryReader doOpenIfChanged() throws IOException
DirectoryReader
DirectoryReader.openIfChanged(DirectoryReader)
.
If this reader does not support reopen, return null
, so
client code is happy. This should be consistent with DirectoryReader.isCurrent()
(should always return true
) if reopen is not supported.
doOpenIfChanged
in class DirectoryReader
IOException
- if there is a low-level IO errorprotected final DirectoryReader doOpenIfChanged(IndexCommit commit) throws IOException
DirectoryReader
DirectoryReader.openIfChanged(DirectoryReader,IndexCommit)
.
If this reader does not support reopen from a specific IndexCommit
,
throw UnsupportedOperationException
.
doOpenIfChanged
in class DirectoryReader
IOException
- if there is a low-level IO errorprotected final DirectoryReader doOpenIfChanged(IndexWriter writer, boolean applyAllDeletes) throws IOException
DirectoryReader
DirectoryReader.openIfChanged(DirectoryReader,IndexWriter,boolean)
.
If this reader does not support reopen from IndexWriter
,
throw UnsupportedOperationException
.
doOpenIfChanged
in class DirectoryReader
IOException
- if there is a low-level IO errorpublic long getVersion()
DirectoryReader
This method
returns the version recorded in the commit that the
reader opened. This version is advanced every time
a change is made with IndexWriter
.
getVersion
in class DirectoryReader
public boolean isCurrent() throws IOException
DirectoryReader
If this reader was created by calling DirectoryReader.open(org.apache.lucene.store.Directory)
,
then this method checks if any further commits
(see IndexWriter.commit()
) have occurred in the
directory.
If instead this reader is a near real-time reader
(ie, obtained by a call to DirectoryReader.open(IndexWriter,boolean)
, or by calling DirectoryReader.openIfChanged(org.apache.lucene.index.DirectoryReader)
on a near real-time reader), then this method checks if
either a new commit has occurred, or any new
uncommitted changes have taken place via the writer.
Note that even if the writer has only performed
merging, this method will still return false.
In any event, if this returns false, you should call
DirectoryReader.openIfChanged(org.apache.lucene.index.DirectoryReader)
to get a new reader that sees the
changes.
isCurrent
in class DirectoryReader
IOException
- if there is a low-level IO errorpublic IndexCommit getIndexCommit() throws IOException
DirectoryReader
getIndexCommit
in class DirectoryReader
IOException
protected void doClose() throws IOException
IndexReader
doClose
in class IndexReader
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |