Class IdentifierProducer

java.lang.Object
org.hibernate.search.batchindexing.IdentifierProducer
All Implemented Interfaces:
StatelessSessionAwareRunnable

public class IdentifierProducer extends Object implements StatelessSessionAwareRunnable
This Runnable is going to feed the indexing queue with the identifiers of all the entities going to be indexed. This step in the indexing process is not parallel (should be done by one thread per type) so that a single transaction is used to define the group of entities to be indexed. Produced identifiers are put in the destination queue grouped in List instances: the reason for this is to load them in batches in the next step and reduce contention on the queue.
  • Constructor Details

    • IdentifierProducer

      public IdentifierProducer(ProducerConsumerQueue<List<Serializable>> fromIdentifierListToEntities, org.hibernate.SessionFactory sessionFactory, int objectLoadingBatchSize, Class<?> indexedType, MassIndexerProgressMonitor monitor, long objectsLimit)
      Parameters:
      fromIdentifierListToEntities - the target queue where the produced identifiers are sent to
      sessionFactory - the Hibernate SessionFactory to use to load entities
      objectLoadingBatchSize - affects mostly the next consumer: IdentifierConsumerEntityProducer
      indexedType - the entity type to be loaded
      monitor - to monitor indexing progress
      objectsLimit - if not zero
  • Method Details