问题描述
我有一个带有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"
},...
}
}
}
}
很明显,在索引和映射创建中使用的是货币字段注释中的name属性值,即“ ccy”。但这似乎不是acctNumber字段上的MultiField批注中的mainField的name属性的情况。
文档here声明Field批注的name属性将表示Elasticsearch文档的字段名称,如果未设置name属性,它将默认为带注释的字段的名称。
但是当在多字段注释中使用字段注释时,这似乎不起作用。
是否有解决方法?
感谢您的帮助!
解决方法
此问题已通过this issue修复,并在4.0.3和4.1.M2版本中发布