Spring Data Elastic Search:移除低磁盘水印警告
Spring Data Elastic Search: remove low disk watermark warning
我不断收到警告 low disk watermark exceeded
而 运行 Spring 数据嵌入 Elastic Search。
通常当 运行 一个单独的 ES 服务器时,我会通过配置 Elastic Search 配置文件来摆脱这些类型的警告。
有没有办法在 .properties 文件或 @Configuration
Java class 中指定一些配置参数以在嵌入式 Spring 数据中关闭此警告ES 版本?
谢谢!
编辑:
ElasticSearchConfiguration.class
@Configuration
@EnableElasticsearchRepositories(basePackages = "eu.step.search")
public class ElasticSearchConfiguration {
@Bean
public ElasticsearchTemplate elasticsearchTemplate (Client client, Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder) {
return new ElasticsearchTemplate(client, new CustomEntityMapper(jackson2ObjectMapperBuilder.createXmlMapper(false).build()));
}
public class CustomEntityMapper implements EntityMapper {
private ObjectMapper objectMapper;
public CustomEntityMapper (ObjectMapper objectMapper) {
this.objectMapper = objectMapper;
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
}
@Override
public String mapToString (Object object) throws IOException {
return objectMapper.writeValueAsString(object);
}
@Override
public <T> T mapToObject (String source, Class <T> clazz) throws IOException {
return objectMapper.readValue(source, clazz);
}
}
}
构建节点时,您可以指定适当的配置设置:
ImmutableSettings.Builder settingsBuilder = ImmutableSettings.settingsBuilder();
settingsBuilder.put("node.name", "MyNode");
settingsBuilder.put("cluster.routing.allocation.disk.threshold_enabled", "false");
Settings settings = settingsBuilder.build();
node = NodeBuilder.nodeBuilder()
.settings(settings)
.clusterName("MyCluster")
.local(true).node();
事实证明,您可以通过在 application.properties 中指定以下参数来实现:
spring.data.elasticsearch.properties.cluster.routing.allocation.disk.threshold_enabled=false
我不断收到警告 low disk watermark exceeded
而 运行 Spring 数据嵌入 Elastic Search。
通常当 运行 一个单独的 ES 服务器时,我会通过配置 Elastic Search 配置文件来摆脱这些类型的警告。
有没有办法在 .properties 文件或 @Configuration
Java class 中指定一些配置参数以在嵌入式 Spring 数据中关闭此警告ES 版本?
谢谢!
编辑:
ElasticSearchConfiguration.class
@Configuration
@EnableElasticsearchRepositories(basePackages = "eu.step.search")
public class ElasticSearchConfiguration {
@Bean
public ElasticsearchTemplate elasticsearchTemplate (Client client, Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder) {
return new ElasticsearchTemplate(client, new CustomEntityMapper(jackson2ObjectMapperBuilder.createXmlMapper(false).build()));
}
public class CustomEntityMapper implements EntityMapper {
private ObjectMapper objectMapper;
public CustomEntityMapper (ObjectMapper objectMapper) {
this.objectMapper = objectMapper;
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
}
@Override
public String mapToString (Object object) throws IOException {
return objectMapper.writeValueAsString(object);
}
@Override
public <T> T mapToObject (String source, Class <T> clazz) throws IOException {
return objectMapper.readValue(source, clazz);
}
}
}
构建节点时,您可以指定适当的配置设置:
ImmutableSettings.Builder settingsBuilder = ImmutableSettings.settingsBuilder();
settingsBuilder.put("node.name", "MyNode");
settingsBuilder.put("cluster.routing.allocation.disk.threshold_enabled", "false");
Settings settings = settingsBuilder.build();
node = NodeBuilder.nodeBuilder()
.settings(settings)
.clusterName("MyCluster")
.local(true).node();
事实证明,您可以通过在 application.properties 中指定以下参数来实现:
spring.data.elasticsearch.properties.cluster.routing.allocation.disk.threshold_enabled=false