Parcourir la source

fix #2800 Handle Exceptions in Suggester Instance Initialization

Shinsuke Sugaya il y a 1 an
Parent
commit
2a250cc19a
1 fichiers modifiés avec 13 ajouts et 10 suppressions
  1. 13 10
      src/main/java/org/codelibs/fess/helper/SuggestHelper.java

+ 13 - 10
src/main/java/org/codelibs/fess/helper/SuggestHelper.java

@@ -109,19 +109,22 @@ public class SuggestHelper {
         settingsBuilder.indicesTimeout(fessConfig.getIndexIndicesTimeout());
         settingsBuilder.searchTimeout(fessConfig.getIndexSearchTimeout());
         suggester = Suggester.builder().settings(settingsBuilder).build(searchEngineClient, fessConfig.getIndexDocumentSuggestIndex());
-        suggester.settings().array().delete(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS);
-        split(fessConfig.getSuggestFieldIndexContents(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(field -> {
-            try {
-                suggester.settings().array().add(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS, field);
-            } catch (final SuggestSettingsException e) {
-                logger.warn("Failed to add {}", field, e);
-            }
-        }));
-        suggester.createIndexIfNothing();
-
         if (ComponentUtil.hasPopularWordHelper()) {
             popularWordHelper = ComponentUtil.getPopularWordHelper();
         }
+        try {
+            suggester.settings().array().delete(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS);
+            split(fessConfig.getSuggestFieldIndexContents(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(field -> {
+                try {
+                    suggester.settings().array().add(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS, field);
+                } catch (final SuggestSettingsException e) {
+                    logger.warn("Failed to add {}", field, e);
+                }
+            }));
+            suggester.createIndexIfNothing();
+        } catch (final Exception e) {
+            logger.warn("Failed to initialize Suggester.", e);
+        }
     }
 
     public Suggester suggester() {