我们正在运行一个java,spring应用程序,它使用spring数据elasticsearch索引到elasticsearch。最近我的团队已经从3.x版升级到4.x版。此升级将根据删除jacksonMap器https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.release/reference/html/#elasticsearch.mapping 本文件包含以下引述:
现在使用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数据ElasticSearch4.x将方法结果Map到elasticsearch中的字段?
1条答案
按热度按时间bxpogfeg1#
您可以通过添加
@AccessType
带有PROPERTY
方法的参数:请注意,spring data elasticsearch也需要一个setter,因此您需要定义一个空方法:
如果您对elasticsearch将为这个文本属性提供的默认Map很在行,那就是了。
我认为应该有可能使用这个没有设置器,除此之外,应该有可能把
@Field
方法上的注解,以便能够对此类属性进行适当的Map。我为此创造了一个jira问题。