【发布时间】:2020-09-02 16:55:34
【问题描述】:
我有一个带有 Spring Data Elasticsearch v4.0.1 的 Spring Boot 应用程序。如果我这样创建一个文档类:
@Document(indexName = "paystub")
public class PayStubEntity {
@MultiField(
mainField = @Field(type = Text, name = "account_number"),
otherFields = {@InnerField(suffix = "keyword", type = Keyword)})
private String acctNumber;
@Field(type = Keyword, name = "ccy")
private String currency;
...
生成的映射是:
{
"paystub": {
"mappings": {
"properties": {
"acctNumber": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"ccy": {
"type": "keyword"
},
...
}
}
}
}
显然,货币字段注释中的名称属性值正在用于索引和映射创建,即“ccy”。但是对于字段 acctNumber 上的 MultiField 注释中的 mainField 的 name 属性,情况似乎并非如此。
文档here指出,Field注解的name属性将代表Elasticsearch文档的字段名称,如果没有设置name属性,则默认为注解字段的名称。
但是当在多字段注释中使用字段注释时,这似乎不起作用。
有解决办法吗?
感谢您的帮助!
【问题讨论】:
标签: java spring elasticsearch spring-data spring-data-elasticsearch