#2442 improve suggest processing

This commit is contained in:
Shinsuke Sugaya 2020-04-03 06:02:12 +09:00
parent 29ce6dd071
commit 1ea921c461
3 changed files with 11 additions and 2 deletions

View file

@ -35,6 +35,7 @@ import javax.annotation.PostConstruct;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.core.lang.ThreadUtil;
import org.codelibs.core.misc.Pair;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.client.FessEsClient;
@ -203,6 +204,8 @@ public class SuggestHelper {
public void indexFromDocuments(final Consumer<Boolean> success, final Consumer<Throwable> error) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final long interval =fessConfig.getSuggestUpdateRequestIntervalAsInteger().longValue();
final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
suggester
.indexer()
.indexFromDocument(
@ -224,7 +227,10 @@ public class SuggestHelper {
reader.addSort(SortBuilders.fieldSort(fessConfig.getIndexFieldClickCount()));
reader.addSort(SortBuilders.scoreSort());
return reader;
}, 2, fessConfig.getSuggestUpdateRequestIntervalAsInteger().longValue()).then(response -> {
}, 2, ()->{
systemHelper.calibrateCpuLoad();
ThreadUtil.sleep(interval);
}).then(response -> {
refresh();
success.accept(true);
}).error(t -> error.accept(t));

View file

@ -568,6 +568,9 @@ public class SystemHelper {
try {
final OsProbe osProbe = OsProbe.getInstance();
systemCpuPercent = osProbe.getSystemCpuPercent();
if(logger.isDebugEnabled()) {
logger.debug("Updated System Cpu {}%", systemCpuPercent);
}
} catch (Exception e) {
logger.warn("Failed to get SystemCpuPercent.", e);
return 0;

View file

@ -747,7 +747,7 @@ suggest.field.contents=_default
suggest.field.tags=label
suggest.field.roles=role
suggest.field.index.contents=content,title
suggest.update.request.interval=1
suggest.update.request.interval=0
suggest.update.contents.limit.num.percentage=50%
suggest.update.contents.limit.num=10000
suggest.update.contents.limit.doc.size=50000