ElasticSearch QueryBuilder libaray for Java Sping Boot 3.0.5不支持

vawmfj5a  于 2023-05-16  发布在  ElasticSearch
关注(0)|答案(1)|浏览(214)

我是新的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,所以我需要更改所有关于使用上述包的服务代码?

  1. 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引起的
am46iovg

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时使用的版本,因此是最低要求。您可以尝试在运行应用程序时更改构建所使用的版本或运行时版本,但不能保证这一定有效。

相关问题