Hibernate Search is an extension to Hibernate ORM that brings the powers of full-text search via Lucene and Elasticsearch to JPA models. Think of it as Google: after processing the input keywords (e.g. ignoring stop words and applying different kinds of normalization), Hibernate Search returns results ordered by relevance. It brings significant benefits comparing to normal SQL for search-related uses cases. Its full-text index can be updated in two ways: Automatically, whenever data changes (using listeners hooked into Hibernate) or by means of the "mass indexe", which rebuilds the entire index for given entity types.
This proposal aims to provide an alternative to the current mass indexer, based on the Java Batch architecture as defined by JSR 352. This standardized tool JSR 352 provides task-and-chunk oriented processing, parallel execution and many other optimization features. This batch job should accept the entity type(s) to re-index as an input, load the relevant entities from the database and rebuild the full-text index from these.