我想从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,但没有结果
谢谢!
1条答案
按热度按时间r7s23pms1#
我通过以下步骤解决问题:1.我更新了最新版本的所有依赖项(7.10.1版本的rest高级客户端和4.1.2版本的spring data elasticsearch)2.spring data elasticsearch 4.x版本中不再提供注解@jsonproperty,现在我们需要使用@field(name=“something”)