@Override public void asyncReindexEntity(String entityName) { metadata.getSession().getClassNN(entityName); Preconditions.checkNotNullArgument(entityDescrsManager.getDescrByEntityName(entityName), "FTS configuration not found for %s", entityName); persistence.runInTransaction(em -> { ftsSender.emptyQueue(entityName); reindexEntitiesQueue.add(entityName); }); }
@Override public int reindexEntity(String entityName) { persistence.runInTransaction(em -> ftsSender.emptyQueue(entityName)); return executeReindexInTx(entityName, entityDescr -> { int count = 0; MetaClass metaClass = entityDescr.getMetaClass(); EntitiesCollector collector = AppBeans.getPrototype(EntitiesCollector.NAME, metaClass); if (Strings.isNullOrEmpty(entityDescr.getSearchableIfScript())) { collector.setIdOnly(true); for (Object id : collector.loadResults()) { ftsSender.enqueue(metaClass.getName(), id, FtsChangeType.INSERT); count++; } log.debug("{} instances of {} was added to the FTS queue", count, entityName); } else { List result = collector.loadResults(); for (Object obj : result) { Entity entity = (Entity) obj; if (runSearchableIf(entity, entityDescr)) { ftsSender.enqueue(metaClass.getName(), entity.getId(), FtsChangeType.INSERT); count++; } } log.debug("{} instances of {} was processed. {} of them was added to the FTS queue", result.size(), metaClass.getName(), count); } return count; }); }