java—如何将SpringDataElasticSearch从3.x版本迁移到4.x版本

egmofgnx  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(481)

我想从elasticsearch带来一些数据,我用springdataelasticsearch v3.2.12成功了,但是用4.x版本我不能做同样的事情。
在elasticsearch中,我有如下数据:

{
    "_index" : "abc",
    "_type" : "_doc",
    "_id" : "SVJhjnEB6V1CiOscApfa",
    "_score" : 2.0954367E-5,
    "_source" : {
      "name" : "abc",
      "timestamp" : "2020-04-18T20:40:51Z",
      "temperature[*C]" : 20.56,
      "humidity[%]" : 45.65
    }

我想用“\u id”像id一样
我的dto类

@Data //from Lombok
@Document(indexName = "abc",type = "_doc")
public class Ascr2Dto {
  @Id
  @ReadOnlyProperty
  private String id;
  private String name;
  private Date timestamp;
  @JsonProperty("temperature[*C]")
  private float temperature;
  @JsonProperty("humidity[%]")
  private float humidity;}

如果我尝试从spring data elasticsearch 3.x迁移到4.x,当我尝试findbyid方法时,会得到“illegalargumentexception:null”
我在spring data elasticsearch(4.x)中使用了@id forces id field,但没有结果
谢谢!

r7s23pms

r7s23pms1#

我通过以下步骤解决问题:1.我更新了最新版本的所有依赖项(7.10.1版本的rest高级客户端和4.1.2版本的spring data elasticsearch)2.spring data elasticsearch 4.x版本中不再提供注解@jsonproperty,现在我们需要使用@field(name=“something”)

相关问题