You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Data Elasticsearch 4.1:实体如何声明含点的字段名?

解决Spring Data Elasticsearch 4.1映射带点扁平字段名的问题

你遇到的问题是因为Spring Data Elasticsearch会把@Field(value = "foo.bar")里的点解析成嵌套对象的路径(对应"foo": { "bar": "123" }这种结构),但你的实际字段是扁平的"foo.bar"字符串,所以得换个方式声明:

直接在字段上用@JsonProperty注解指定字面量的字段名,配合@Field配置字段类型(如果需要的话),示例代码:

@JsonProperty("foo.bar")
@Field(type = FieldType.Keyword) // 按需调整字段类型,比如Text、Keyword等
private String fooBar;

原理是Spring Data Elasticsearch 4.x底层依赖Jackson做文档的序列化/反序列化,@JsonProperty会直接指定JSON输出的字段名,不会把点解析成嵌套路径,这样就能正确映射到你索引里的"foo.bar"字段了。

内容的提问来源于stack exchange,提问作者aslab0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 17:34:55