选择 spring-data-elasticsearch 3.2,同时使用 spring-boot 2.3

Opt for spring-data-elasticsearch 3.2 while staying with spring-boot 2.3

我们在 spring-boot 2.3 上有一个 Web 服务 运行,带有 spring-data-r2dbc,它仅在 spring-boot 2.3 之后可用。

最近需要集成现有的elasticsearch 6.x集群,spring-boot 2.3自带的spring-data-elasticsearch 4.0不支持。

我试图显式声明依赖 spring-data-elasticsearch 3.2.10(它支持 6.x es 集群),但是我可以看到elasticsearch-rest-high-level-client 7.6.2(这个依赖是spring-data-elasticsearch 4.0不支持6.x es cluster any的根本原因更多)仍然加载,无论 版本 6.8.12 在 spring-data-elasticsearch 3.2.10 的 pom.xml.

中声明

我正在使用带有 io.spring.dependency-managementorg.springframework.boot 插件的 gradle。我想知道如何在正确选择 spring-data-elasticsearch 3.2.10 的同时继续使用 spring-boot 2.3?

========== 编辑 ==========

我遇到这个 post 并认为这是因为 io.spring.dependency-management gradle 插件将 elasticsearch 版本强制为 7.6.2。

我改了ext["elasticsearch.version"] = 6.8.12,现在需要elasticsearch版本了。

但是,我仍然不确定以这种方式覆盖版本是否会导致任何不可预见的问题。

我没有 gradle 设置来测试这个,但是使用 Maven 你需要两件事:

设置 Elasticsearch 版本的 属性 和 Spring Data Elasticsearch 的依赖项:

    <properties>
        <elasticsearch.version>6.8.4</elasticsearch.version>
    </properties>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.2.10.RELEASE</version>
    </dependency>

第一次用示例程序测试似乎运行没问题,但可能会有问题,因为spring-data-elasticsearch和spring-data-r2dbc都依赖于spring-data -commons现在有不同的版本;你得试试。