Class MassIndexerImpl

java.lang.Object
org.hibernate.search.impl.MassIndexerImpl
All Implemented Interfaces:
MassIndexer

public class MassIndexerImpl extends Object implements MassIndexer
Prepares and configures a BatchIndexingWorkspace to start rebuilding the indexes for all entity instances in the database. The type of these entities is either all indexed entities or a subset, always including all subtypes.
  • Field Details

    • rootEntities

      protected Set<Class<?>> rootEntities
  • Constructor Details

  • Method Details

    • cacheMode

      public MassIndexer cacheMode(org.hibernate.CacheMode cacheMode)
      Description copied from interface: MassIndexer
      Sets the cache interaction mode for the data loading tasks. Defaults to CacheMode.IGNORE.
      Specified by:
      cacheMode in interface MassIndexer
      Returns:
      this for method chaining
    • threadsToLoadObjects

      public MassIndexer threadsToLoadObjects(int numberOfThreads)
      Description copied from interface: MassIndexer
      Set the number of threads to be used to load the root entities.
      Specified by:
      threadsToLoadObjects in interface MassIndexer
      Parameters:
      numberOfThreads -
      Returns:
      this for method chaining
    • batchSizeToLoadObjects

      public MassIndexer batchSizeToLoadObjects(int batchSize)
      Description copied from interface: MassIndexer
      Sets the batch size used to load the root entities.
      Specified by:
      batchSizeToLoadObjects in interface MassIndexer
      Parameters:
      batchSize -
      Returns:
      this for method chaining
    • threadsForSubsequentFetching

      public MassIndexer threadsForSubsequentFetching(int numberOfThreads)
      Description copied from interface: MassIndexer
      Sets the number of threads used to load the lazy collections related to the indexed entities.
      Specified by:
      threadsForSubsequentFetching in interface MassIndexer
      Parameters:
      numberOfThreads -
      Returns:
      this for method chaining
    • threadsForIndexWriter

      public MassIndexer threadsForIndexWriter(int numberOfThreads)
      Description copied from interface: MassIndexer

      Sets the number of threads to be used to analyze the documents and write to the index.

      This overrides the global property hibernate.search.batchbackend.concurrent_writers.

      Might be ignored by BatchBackend implementations other than org.hibernate.search.backend.impl.batchlucene.LuceneBatchBackend

      Specified by:
      threadsForIndexWriter in interface MassIndexer
      Parameters:
      numberOfThreads -
      Returns:
      this for method chaining
      See Also:
    • progressMonitor

      public MassIndexer progressMonitor(MassIndexerProgressMonitor monitor)
      Description copied from interface: MassIndexer
      Override the default MassIndexerProgressMonitor.
      Specified by:
      progressMonitor in interface MassIndexer
      Parameters:
      monitor - this instance will receive updates about the massindexing progress.
      Returns:
      this for method chaining
    • optimizeOnFinish

      public MassIndexer optimizeOnFinish(boolean optimize)
      Description copied from interface: MassIndexer
      If index optimization has to be started at the end of the indexing process. Defaults to true.
      Specified by:
      optimizeOnFinish in interface MassIndexer
      Parameters:
      optimize -
      Returns:
      this for method chaining
    • optimizeAfterPurge

      public MassIndexer optimizeAfterPurge(boolean optimize)
      Description copied from interface: MassIndexer
      If index optimization should be run before starting, after the purgeAll. Has no effect if purgeAll is set to false. Defaults to true.
      Specified by:
      optimizeAfterPurge in interface MassIndexer
      Parameters:
      optimize -
      Returns:
      this for method chaining
    • purgeAllOnStart

      public MassIndexer purgeAllOnStart(boolean purgeAll)
      Description copied from interface: MassIndexer
      If all entities should be removed from the index before starting using purgeAll. Set it to false only if you know there are no entities in the index: otherwise search results may be duplicated. Defaults to true.
      Specified by:
      purgeAllOnStart in interface MassIndexer
      Parameters:
      purgeAll -
      Returns:
      this for method chaining
    • start

      public Future<?> start()
      Description copied from interface: MassIndexer
      Starts the indexing process in background (asynchronous). Can be called only once.
      Specified by:
      start in interface MassIndexer
      Returns:
      a Future to control task canceling. get() will block until completion. cancel() is currently not implemented.
    • startAndWait

      public void startAndWait() throws InterruptedException
      Description copied from interface: MassIndexer
      Starts the indexing process, and then block until it's finished. Can be called only once.
      Specified by:
      startAndWait in interface MassIndexer
      Throws:
      InterruptedException - if the current thread is interrupted while waiting.
    • createCoordinator

      protected BatchCoordinator createCoordinator()
    • limitIndexedObjectsTo

      public MassIndexer limitIndexedObjectsTo(long maximum)
      Description copied from interface: MassIndexer
      EXPERIMENTAL method: will probably change Will stop indexing after having indexed a set amount of objects. As a results the index will not be consistent with the database: use only for testing on an (undefined) subset of database data.
      Specified by:
      limitIndexedObjectsTo in interface MassIndexer
      Parameters:
      maximum -
      Returns: