如何使用LocalDate从spring查询elasticsearch

pie*_*iet 5 spring elasticsearch

有这个搜索查询:

final SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.rangeQuery("updateTime").gte(LocalDate.now())).build();
final List<ActivityValue> listOf = elasticsearchTemplate.queryForList(searchQuery, ActivityValue.class);
Run Code Online (Sandbox Code Playgroud)

对于实体 ActivityValue:

@Document(indexName = "tracking1", type = "activity")
public class ActivityValue {

@Id
private String id;

@Field(type = FieldType.Date, index = false, store = true, format = DateFormat.custom, pattern = "yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private LocalDate updateTime;

@Field(type = FieldType.Object, includeInParent = true)
private Vendor vendor;

@Field(type = FieldType.Object, includeInParent = true)
private QCriteria quality;

public ActivityValue() {
}

//setter and getter
}
Run Code Online (Sandbox Code Playgroud)

如果我运行查询并尝试接收列表,我会收到以下异常:

caused by: java.io.IOException: can not write type [class java.time.LocalDate]
Run Code Online (Sandbox Code Playgroud)

该实体之前存储的实际日期为 LocalDate。我不确定查询 Elasticsearch 并解决此错误的最佳/最简单方法是什么。有人可以帮忙吗?

小智 2

final SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.rangeQuery("updateTime").gte(LocalDate.now().toString())).build();
final List<ActivityValue> listOf = elasticsearchTemplate.queryForList(searchQuery, ActivityValue.class);
Run Code Online (Sandbox Code Playgroud)

LocalDate.now().toString()我通过使用而不是解决了这个问题LocalDate.now()