我已经更新了Spring Boot项目以使用新的ElasticSearch 2 API,并且在启动时遇到此错误:

Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/common/settings/ImmutableSettings$Builder
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)

我相关的Maven依赖项是:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        <version>1.3.0.M5</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>2.0.0-rc1</version>
    </dependency>

您对我做错了什么吗?

谢谢

最佳答案

在ES 2.0中,确实删除了ImmutableSettings类。 This issue提到了它,breaking changes documentation for 2.0也提到了它。

相反,您现在可以使用Settings.builder()而不是ImmutableSettings.builder()Settings类的当前实现可以看到here

仍然使用ImmutableSettings的所有问题都是关于Elasticsearch的 2.0之前的版本的问题。

08-04 17:52