sure :)
Code:
List<Class<?>> indexedClassList = getIndexedClassList(transaction); //returns list with all classes to index
FullTextSession fullTextSession = Search.getFullTextSession(transaction.getSession());
fullTextSession.setFlushMode(FlushMode.MANUAL);
fullTextSession.setCacheMode(CacheMode.IGNORE);
for (Class<?> materialKlasse : indexedClassList)
{
ScrollableResults results = fullTextSession.createCriteria(materialKlasse)
.setFetchSize(20)
.scroll(ScrollMode.FORWARD_ONLY);
int index = 0;
while (results.next())
{
index++;
Object entity = results.get(0);
if (fullTextSession.getSearchFactory().getDirectoryProviders(entity.getClass()) != null)
{
fullTextSession.index(entity); // index each element
}
if (index % 20 == 0)
{
fullTextSession.flushToIndexes();
fullTextSession.clear(); // clear every batchSize since the queue is processed
}
}
}
transaction.savepoint();
transaction.getSession().clear();