Class LiveFieldValues<S,​T>

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ReferenceManager.RefreshListener

    public abstract class LiveFieldValues<S,​T>
    extends java.lang.Object
    implements ReferenceManager.RefreshListener, java.io.Closeable
    Tracks live field values across NRT reader reopens. This holds a map for all updated ids since the last reader reopen. Once the NRT reader is reopened, it prunes the map. This means you must reopen your NRT reader periodically otherwise the RAM consumption of this class will grow unbounded!

    NOTE: you must ensure the same id is never updated at the same time by two threads, because in this case you cannot in general know which thread "won".

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.lang.String id, T value)
      Call this after you've successfully added a document to the index, to record what value you just set the field to.
      void afterRefresh​(boolean didRefresh)
      Called after the attempted refresh; if the refresh did open a new reference then didRefresh will be true and ReferenceManager.acquire() is guaranteed to return the new reference.
      void beforeRefresh()
      Called right before a refresh attempt starts.
      void close()  
      void delete​(java.lang.String id)
      Call this after you've successfully deleted a document from the index.
      T get​(java.lang.String id)
      Returns the current value for this id, or null if the id isn't in the index or was deleted.
      int size()
      Returns the [approximate] number of id/value pairs buffered in RAM.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • add

        public void add​(java.lang.String id,
                        T value)
        Call this after you've successfully added a document to the index, to record what value you just set the field to.
      • delete

        public void delete​(java.lang.String id)
        Call this after you've successfully deleted a document from the index.
      • size

        public int size()
        Returns the [approximate] number of id/value pairs buffered in RAM.
      • get

        public T get​(java.lang.String id)
              throws java.io.IOException
        Returns the current value for this id, or null if the id isn't in the index or was deleted.
        Throws:
        java.io.IOException