Class LuceneIncrementalIndexManager

java.lang.Object
com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager
All Implemented Interfaces:
IncrementalIndexManager

@LuceneIndependent @Internal public class LuceneIncrementalIndexManager extends Object implements IncrementalIndexManager
Entry point to the majority of the Lucene indexing subsystem.
Since:
7.9.0
  • Field Details

  • Constructor Details

  • Method Details

    • isFlushing

      @Transactional(readOnly=true, propagation=SUPPORTS) public boolean isFlushing()
      Description copied from interface: IncrementalIndexManager
      Returns true if the index queue is currently being flushed.
      Specified by:
      isFlushing in interface IncrementalIndexManager
      Returns:
      true if flushing, false otherwise.
    • flushQueue

      @Transactional(readOnly=true, propagation=REQUIRED) public boolean flushQueue(IndexManager.IndexQueueFlushMode flushMode)
      Description copied from interface: IncrementalIndexManager
      Flushes the index queue, processing a batch of the tasks
      Specified by:
      flushQueue in interface IncrementalIndexManager
      Parameters:
      flushMode - - whether to flush the entire queue, or just one batch of batchsize as specified by the system property index.queue.batch.size
      Returns:
      whether the flush actually took place
    • flushQueueWithLockTimeout

      @Transactional(readOnly=true, propagation=REQUIRED) public boolean flushQueueWithLockTimeout(IndexManager.IndexQueueFlushMode flushMode, int lockTimeout, TimeUnit lockTimeoutUnit)
      Description copied from interface: IncrementalIndexManager
      Flushes the index queue with a specified lock timeout. This method processes tasks from the index queue, allowing the caller to define a custom timeout for acquiring a lock on the index.
      Specified by:
      flushQueueWithLockTimeout in interface IncrementalIndexManager
      Parameters:
      flushMode - Specifies whether to flush the entire queue or just a batch of tasks. The batch size is determined by the system property index.queue.batch.size.
      lockTimeout - The maximum time to wait for acquiring the lock, specified as an int value.
      lockTimeoutUnit - The unit of time for the lock timeout, specified as a TimeUnit.
      Returns:
      true if the queue was successfully flushed, false otherwise.
      See Also:
    • resetIndexQueue

      @Transactional(propagation=REQUIRED) public void resetIndexQueue()
      Delete all of the entries on the index queue. This should NOT be called during the normal running of Confluence since all pending Index Tasks will be deleted WITHOUT being processed.
      Specified by:
      resetIndexQueue in interface IncrementalIndexManager
    • getLastNonEmptyFlushStats

      @Transactional(readOnly=true, propagation=SUPPORTS) public FlushStatistics getLastNonEmptyFlushStats()
      Specified by:
      getLastNonEmptyFlushStats in interface IncrementalIndexManager
      Returns:
      the information about last queue flush. null if no flush has occured from system start.
    • getQueueSize

      @Transactional(readOnly=true, propagation=SUPPORTS) public int getQueueSize()
      Specified by:
      getQueueSize in interface IncrementalIndexManager
      Returns:
      the number of pending items in the corresponding index queue
    • getSizeInBytes

      @Transactional(readOnly=true, propagation=SUPPORTS) public long getSizeInBytes()
      Specified by:
      getSizeInBytes in interface IncrementalIndexManager
      Returns:
      size of the index in bytes
    • addTask

      @Transactional(propagation=REQUIRED) public void addTask(ConfluenceIndexTask task)
      Description copied from interface: IncrementalIndexManager
      Adds a new task to the index queue
      Specified by:
      addTask in interface IncrementalIndexManager
    • getTargetIndex

      @Transactional(readOnly=true, propagation=SUPPORTS) public SearchIndex getTargetIndex()
    • refreshIndex

      public void refreshIndex() throws IOException
      Description copied from interface: IncrementalIndexManager
      Refresh the index immediately, which publishes its most recent changes and makes them available for searching. This method is only applicable to the OpenSearch platform.
      Specified by:
      refreshIndex in interface IncrementalIndexManager
      Throws:
      IOException