diff --git a/src/main/java/org/codelibs/fess/es/client/CrawlerEngineClient.java b/src/main/java/org/codelibs/fess/es/client/CrawlerEngineClient.java index c0073f7b5..31c089818 100644 --- a/src/main/java/org/codelibs/fess/es/client/CrawlerEngineClient.java +++ b/src/main/java/org/codelibs/fess/es/client/CrawlerEngineClient.java @@ -33,7 +33,8 @@ public class CrawlerEngineClient extends FesenClient { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final String[] hosts = split(address, ",").get(stream -> stream.map(s -> s.trim()).filter(StringUtil::isNotEmpty).toArray(n -> new String[n])); - final Builder builder = Settings.builder().putList("http.hosts", hosts).put("processors", fessConfig.getCrawlerHttpProcessors()); + final Builder builder = Settings.builder().putList("http.hosts", hosts).put("processors", fessConfig.getCrawlerHttpProcessors()) + .put("http.heartbeat_interval", fessConfig.getElasticsearchHeartbeatIntervalAsInteger().longValue()); final String username = fessConfig.getElasticsearchUsername(); final String password = fessConfig.getElasticsearchPassword(); if (StringUtil.isNotBlank(username) && StringUtil.isNotBlank(password)) { diff --git a/src/main/java/org/codelibs/fess/es/client/SearchEngineClient.java b/src/main/java/org/codelibs/fess/es/client/SearchEngineClient.java index 28e734bcf..20c56d350 100644 --- a/src/main/java/org/codelibs/fess/es/client/SearchEngineClient.java +++ b/src/main/java/org/codelibs/fess/es/client/SearchEngineClient.java @@ -350,7 +350,8 @@ public class SearchEngineClient implements Client { protected Client createHttpClient(final FessConfig fessConfig, final String host) { final String[] hosts = split(host, ",").get(stream -> stream.map(s -> s.trim()).filter(StringUtil::isNotEmpty).toArray(n -> new String[n])); - final Builder builder = Settings.builder().putList("http.hosts", hosts).put("processors", fessConfig.availableProcessors()); + final Builder builder = Settings.builder().putList("http.hosts", hosts).put("processors", fessConfig.availableProcessors()) + .put("http.heartbeat_interval", fessConfig.getElasticsearchHeartbeatIntervalAsInteger().longValue()); final String username = fessConfig.getElasticsearchUsername(); final String password = fessConfig.getElasticsearchPassword(); if (StringUtil.isNotBlank(username) && StringUtil.isNotBlank(password)) { diff --git a/src/main/java/org/codelibs/fess/helper/CurlHelper.java b/src/main/java/org/codelibs/fess/helper/CurlHelper.java index 68c4bf5f6..8f336317d 100644 --- a/src/main/java/org/codelibs/fess/helper/CurlHelper.java +++ b/src/main/java/org/codelibs/fess/helper/CurlHelper.java @@ -76,6 +76,7 @@ public class CurlHelper { final String[] hosts = split(ResourceUtil.getFesenHttpUrl(), ",") .get(stream -> stream.map(s -> s.trim()).filter(StringUtil::isNotEmpty).toArray(n -> new String[n])); nodeManager = new NodeManager(hosts, node -> get(node.getUrl("/"))); + nodeManager.setHeartbeatInterval(fessConfig.getElasticsearchHeartbeatIntervalAsInteger().longValue()); } public CurlRequest get(final String path) { diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index b5165c0cd..ad9128673 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -40,6 +40,9 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** The key of the configuration. e.g. */ String ELASTICSEARCH_PASSWORD = "elasticsearch.password"; + /** The key of the configuration. e.g. 10000 */ + String ELASTICSEARCH_heartbeat_interval = "elasticsearch.heartbeat_interval"; + /** The key of the configuration. e.g. aes */ String APP_CIPHER_ALGORISM = "app.cipher.algorism"; @@ -1811,6 +1814,21 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction */ Integer getElasticsearchPasswordAsInteger(); + /** + * Get the value for the key 'elasticsearch.heartbeat_interval'.
+ * The value is, e.g. 10000
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + */ + String getElasticsearchHeartbeatInterval(); + + /** + * Get the value for the key 'elasticsearch.heartbeat_interval' as {@link Integer}.
+ * The value is, e.g. 10000
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + * @throws NumberFormatException When the property is not integer. + */ + Integer getElasticsearchHeartbeatIntervalAsInteger(); + /** * Get the value for the key 'app.cipher.algorism'.
* The value is, e.g. aes
@@ -7282,6 +7300,14 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction return getAsInteger(FessConfig.ELASTICSEARCH_PASSWORD); } + public String getElasticsearchHeartbeatInterval() { + return get(FessConfig.ELASTICSEARCH_heartbeat_interval); + } + + public Integer getElasticsearchHeartbeatIntervalAsInteger() { + return getAsInteger(FessConfig.ELASTICSEARCH_heartbeat_interval); + } + public String getAppCipherAlgorism() { return get(FessConfig.APP_CIPHER_ALGORISM); } @@ -10139,6 +10165,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction defaultMap.put(FessConfig.ELASTICSEARCH_HTTP_SSL_certificate_authorities, ""); defaultMap.put(FessConfig.ELASTICSEARCH_USERNAME, ""); defaultMap.put(FessConfig.ELASTICSEARCH_PASSWORD, ""); + defaultMap.put(FessConfig.ELASTICSEARCH_heartbeat_interval, "10000"); defaultMap.put(FessConfig.APP_CIPHER_ALGORISM, "aes"); defaultMap.put(FessConfig.APP_CIPHER_KEY, "___change__me___"); defaultMap.put(FessConfig.APP_DIGEST_ALGORISM, "sha256"); diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index ecf803f9d..162f62c99 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -14,6 +14,7 @@ elasticsearch.http.url=http://localhost:9201 elasticsearch.http.ssl.certificate_authorities= elasticsearch.username= elasticsearch.password= +elasticsearch.heartbeat_interval=10000 # Cryptographer app.cipher.algorism=aes