Class 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.NRTWorkspaceImpl from Hibernate Search 5 by Sanne Grinovero.

    • Constructor Detail

      • NearRealTimeIndexReaderProvider

        public NearRealTimeIndexReaderProvider​(IndexWriterProvider indexWriterProvider,
                                               TimingSource timingSource,
                                               int refreshInterval)
    • Method Detail

      • getOrCreate

        public org.apache.lucene.index.DirectoryReader getOrCreate()
                                                            throws IOException
        Specified by:
        getOrCreate in interface IndexReaderProvider
        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 call IndexReader.close(), as the index reader may be shared.
        Throws:
        IOException