我有一个spring引导应用程序,安装了Spring Data Elasticsearch v4.0.1。如果我这样创建一个document类:
@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"
},
...
}
}
}
}
很明显,currency字段注释中的name属性值正在索引和映射创建中使用,即"ccy“。但是,对于字段acctNumber上的MultiField注释中的mainField属性,情况似乎并非如此。
documentation here声明,字段注释的name属性将表示Elasticsearch文档的字段的名称,如果没有设置name属性,它将缺省为带注释的字段的名称。
但是,当在多字段注释中使用Field注释时,这似乎不起作用。
有解决这个问题的办法吗?
谢谢你的帮助!
发布于 2020-09-03 01:39:32
此问题已通过this issue修复,并在版本4.0.3和4.1.M2中发布
https://stackoverflow.com/questions/63710185
复制相似问题