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