今天索引字段扩展,通过后端代码生成索引时,映射结构和定义出现不一致
/** 商品编号 */
@Field(type=FieldType.Keyword)
private String productCode;
/** 商品品牌id */
@Field(type=FieldType.Keyword)
private String brandId;
/** 商品品牌名称 */
@Field(type=FieldType.Keyword)
private String brandName;
再代码中指定了字段类型,但是通过kibana查看映射发现不一致
所有的keyword结构都变成了如下类型
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
最后通过手动在kibana中重置结构才得以解决
我的es版本是6.7
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"name": {
"type": "keyword"
},
"age": {
"type": "integer"
}
}
}
}
}
7.x 版本以后删除了类型数据层,就不需要my_type
这一级
有没有大佬帮忙看下为什么通过java代码生成时指定的映射关系没有生效,
本人实验场景
场景一:通过后端代码生成索引和映射关系 (失败)
场景二:通过kibana创建好索引,再通过代码生成映射关系(失败)
场景三:通过kibana创建索引并关闭动态映射,再通过代码上传数据,数据存在,但是映射关系没有生成(失败)