From eec062f0054d54e4d25f2e24a731bc165e9a83b6 Mon Sep 17 00:00:00 2001 From: Shinsuke Sugaya <shinsuke@apache.org> Date: Wed, 10 Aug 2022 22:01:26 +0900 Subject: [PATCH] fix #2672 check if suggest.searchlog is false --- .../codelibs/fess/exec/SuggestCreator.java | 69 +++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/src/main/java/org/codelibs/fess/exec/SuggestCreator.java b/src/main/java/org/codelibs/fess/exec/SuggestCreator.java index 37606af08..92061ade6 100644 --- a/src/main/java/org/codelibs/fess/exec/SuggestCreator.java +++ b/src/main/java/org/codelibs/fess/exec/SuggestCreator.java @@ -187,55 +187,66 @@ public class SuggestCreator { } private int create() { - if (!ComponentUtil.getFessConfig().isSuggestDocuments()) { - logger.info("Skip create suggest document."); + if (!ComponentUtil.getFessConfig().isSuggestDocuments() && !ComponentUtil.getFessConfig().isSuggestSearchLog()) { + logger.info("Skipped to create new suggest index."); return 0; } - logger.info("Start create suggest document."); - - final AtomicInteger result = new AtomicInteger(1); - final CountDownLatch latch = new CountDownLatch(1); - final SuggestHelper suggestHelper = ComponentUtil.getSuggestHelper(); - logger.info("Create update index."); + logger.info("Creating new suggest index."); suggestHelper.suggester().createNextIndex(); - logger.info("Store all bad words."); + logger.info("Storing all bad words."); suggestHelper.storeAllBadWords(true); - logger.info("Store all elevate words."); + logger.info("Storing all elevate words."); suggestHelper.storeAllElevateWords(true); - logger.info("Parse words from indexed documents."); - suggestHelper.indexFromDocuments(ret -> { - logger.info("Success index from documents."); - result.set(0); - latch.countDown(); - }, t -> { - logger.error("Failed to update suggest index.", t); - latch.countDown(); - }); + final AtomicInteger exitCode = new AtomicInteger(0); - try { - latch.await(); - } catch (final InterruptedException ignore) { - if (logger.isDebugEnabled()) { - logger.debug("Interrupted.", ignore); + if (ComponentUtil.getFessConfig().isSuggestDocuments()) { + final CountDownLatch latch = new CountDownLatch(1); + + logger.info("Parsing words from indexed documents."); + suggestHelper.indexFromDocuments(ret -> { + logger.info("Success indexing from documents."); + latch.countDown(); + }, t -> { + logger.error("Failed to update suggest index.", t); + exitCode.set(1); + latch.countDown(); + }); + + try { + latch.await(); + } catch (final InterruptedException ignore) { + if (logger.isDebugEnabled()) { + logger.debug("Interrupted.", ignore); + } + exitCode.set(1); } } - logger.info("Store search logs."); - suggestHelper.storeSearchLog(); + if (ComponentUtil.getFessConfig().isSuggestSearchLog()) { + logger.info("Parsing words from search logs."); + try { + suggestHelper.storeSearchLog(); + } catch (final Exception e) { + if (logger.isDebugEnabled()) { + logger.debug("Failed to update suggest index.", e); + } + exitCode.set(1); + } + } - logger.info("Switch indices."); + logger.info("Replacing new suggest index."); suggestHelper.suggester().switchIndex(); - logger.info("Remove old indices."); + logger.info("Removing old indices."); suggestHelper.suggester().removeDisableIndices(); - return result.get(); + return exitCode.get(); } private int purge(final LocalDateTime time) { -- GitLab