我是新的stackoverflow和高兴地向大家学习
我需要从以下位置升级Java Sping Boot 程序:
- Java 11到Java 17
- Sping Boot 2.4.2到Spring Boot 3.0.5
更改pom.xml后:
- java.version:17
- org.springframework. Boot :spring-boot-starter-parent:3.0.5
我的elasticsearch依赖(org.springframework. Boot :spring-boot-starter-data-elasticsearch)也升级到3.0.5了。但是,我发现以下包丢失:
- org.apache.lucene.search.join.ScoreMode
- org.elasticsearch.index.query.BoolQueryBuilder
- org.elasticsearch.index.query.QueryBuilder
- org.elasticsearch.index.query.QueryBuilders
- org.elasticsearch.index.query.TermsQueryBuilder
所以我对新的Elasticsearch客户端库有一些问题:
1.是否不支持再次使用QueryBuilder,所以我需要更改所有关于使用上述包的服务代码?
- 5.0.5版本是否不支持React模式?如果两个答案都是肯定的,那么升级它对我来说真的很痛苦。
以下是我的ES的基本信息:版本:7.10.1
另外,我有一个愚蠢的问题要确认:根据Spring-Data-Elasticsearch提供的以下信息:https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions
如果我的ES版本是7.10.1,我只能将我的spring Boot 升级到2.7.x?或者我升级到3.0.5也可以支持旧版本。
如果有任何东西丢失,我会再次提供。抱歉,我的英语不好。谢谢你的回答。
我试着用下面的模式改变pom:
案例1:将Java从11升级到17将Java Sping Boot 从2.4.2升级到3.0.5或3.0.6让org.springframework.boot:spring-boot-starter-data-elasticsearch版本与父版本相同某些ES包丢失,程序无法运行
Case 2:Upgrade Java from 11 to 17 Keep Java Sping Boot 2.4.2 Upgrade org.springframework.boot:spring-boot-starter-data-elasticsearch to 3.0.5 or 3.0.6结果:程序运行无误
案例3:将Java从11升级到17将Java Sping Boot 从2.4.2升级到3.0.5或3.0.6保持org.springframework.boot:spring-boot-starter-data-elasticsearch:2.4.2结果:某些ES包丢失,程序无法运行
因此,看起来缺少包的问题是由将Java Sping Boot 从2.4.2升级到3.0.x引起的
1条答案
按热度按时间am46iovg1#
首先,您应该能够在不更改程序版本的情况下将Java版本从11升级到17。
您缺少的类来自Elasticsearch旧的已弃用的
RestHighLevelClient
库的集成。当你需要这些的时候,看起来你是在使用这个库中的类和NativeSearchQuery
来编写本机查询。从Spring Data Elasticsearch 5.0开始,使用了新的Elasticsearch client library。为了为这个客户端构建原生查询,你当然需要使用来自新客户端的类(例如检查Elasticsearch documentation),然后在Spring Data Elasticsearch中你将需要使用
NativeQuery
。如果您使用Spring Data Elasticsearch提供的方法(Criteria查询,repository方法或@Query注解方法)构建查询,则不会发生任何变化。使用Spring Data Elasticsearch版本5.0和5.1(上周五发布- 12.05.2023 -,即将发布的Sping Boot 3.1将引用),您仍然可以使用旧的客户端库。但这不再是默认值,必须进行配置,检查(https://docs.spring.io/spring-data/elasticsearch/docs/5.0.6/reference/html/#elasticsearch.clients.resthighlevelclient)和(https://docs.spring.io/spring-data/elasticsearch/docs/5.0.6/reference/html/#elasticsearch-migration-guide-4.4-5.0.old-client)
当然,当前版本也支持响应式编程。
关于文档中的版本参考:这些是在开发和测试Spring Data Elasticsearch时使用的版本,因此是最低要求。您可以尝试在运行应用程序时更改构建所使用的版本或运行时版本,但不能保证这一定有效。