【发布时间】:2020-12-16 07:07:03
【问题描述】:
我们正在运行一个 Java、Spring 应用程序,它使用 Spring Data Elasticsearch 为 ElasticSearch 建立索引。最近我的团队已经从 3.x 版本迁移到 4.x 版本。此升级根据https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RELEASE/reference/html/#elasticsearch.mapping 删除了Jackson 映射器此文档包含以下引用:
现在使用 MappingElasticsearchConverter 涵盖了所有这些情况。
然而,我还没有找到解决以下问题的方法。我们过去在 ElasticSearch 中通过在我们的模型中包含一个包含该模型字段的逻辑函数的方法来构建某些字段。例如:
public class Person {
private String firstName;
private String lastName;
String getFullName(){
return firstName + " " + lastName;
}
}
使用 3.x 版本,getFullName() 方法将由 Jackson 默认序列化,用“fullName”字段填充我们的 ElasticSearch 索引。在版本 4.x 中,我们的索引中省略了此信息。 4.x 中的注释似乎只支持字段的序列化选项,而不是方法。 Jackson 注释(例如@JsonInclude)显然不再在这里工作了。
如何使用 Spring Data ElasticSearch 4.x 将方法结果映射到 ElasticSearch 中的字段?
【问题讨论】:
标签: java spring elasticsearch jackson spring-data-elasticsearch