Class NearRealTimeIndexReaderProvider
- java.lang.Object
-
- org.hibernate.search.backend.lucene.lowlevel.reader.impl.NearRealTimeIndexReaderProvider
-
- All Implemented Interfaces:
IndexReaderProvider
public class NearRealTimeIndexReaderProvider extends Object implements IndexReaderProvider
A index reader holder that opens an index reader from the index writer, thereby providing a near-real-time view on the index.The index reader is instantiated once and shared among all threads for as long as it is deemed "current", i.e. as long as there were no changes from the directory every time an index reader is requested.
Heavily inspired by
org.hibernate.search.backend.impl.lucene.NRTWorkspaceImplfrom Hibernate Search 5 by Sanne Grinovero.
-
-
Constructor Summary
Constructors Constructor Description NearRealTimeIndexReaderProvider(IndexWriterProvider indexWriterProvider, TimingSource timingSource, int refreshInterval)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Closes and drops any cached resources (index readers in particular).org.apache.lucene.index.DirectoryReadergetOrCreate()voidrefresh()Make sure the index reader returned by the next call toIndexReaderProvider.getOrCreate()will return an up-to-date view of the index.
-
-
-
Constructor Detail
-
NearRealTimeIndexReaderProvider
public NearRealTimeIndexReaderProvider(IndexWriterProvider indexWriterProvider, TimingSource timingSource, int refreshInterval)
-
-
Method Detail
-
clear
public void clear() throws IOExceptionDescription copied from interface:IndexReaderProviderCloses and drops any cached resources (index readers in particular).Should be used when stopping the index or to clean up upon error.
- Specified by:
clearin interfaceIndexReaderProvider- Throws:
IOException
-
refresh
public void refresh()
Description copied from interface:IndexReaderProviderMake sure the index reader returned by the next call toIndexReaderProvider.getOrCreate()will return an up-to-date view of the index.- Specified by:
refreshin interfaceIndexReaderProvider
-
getOrCreate
public org.apache.lucene.index.DirectoryReader getOrCreate() throws IOException- Specified by:
getOrCreatein interfaceIndexReaderProvider- Returns:
- A ready-to-use index reader, with its reference count already increased.
Callers are responsible for calling
IndexReader.decRef()when they are done with the index reader. Callers must not callIndexReader.close(), as the index reader may be shared. - Throws:
IOException
-
-