1.text类型无法使用aggs聚合分析
2.text类型的数值是无法排序的
解决方式:
1.聚合使用keyword类型
PUT 索引
{
"mappings": {
"properties": {
"name":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
}
}
}
2.开始 fieldData:true
PUT 索引
{
"mappings": {
"properties": {
"name":{
"type": "text",
"fieldData":true
}
}
}
fieldData是存于内存的,对磁盘空间占用太大,且IO开销太大,严重影响效率
推荐使用 解决方案1
也可以通过参数来设置内存限制
indices.fielddata.cache.size:20%
内存监控命令
GET _stats/fielddata?fields=*
GET _nodes/stats/indices/fielddata?fields=*//按照节点
GET _nodes/stats/indices/fielddata?fields=*&level=indices//按照节点索引
"_all" : {
"primaries" : {
"fielddata" : {
"memory_size_in_bytes" : 632, //占用内存多少
"evictions" : 0,//做释放次数
"fields" : {
"type" : {//字段名称
"memory_size_in_bytes" : 0//赞同内存多少
},
"_id" : {
"memory_size_in_bytes" : 632
}
}
}
},
"total" : {//总计
"fielddata" : {
"memory_size_in_bytes" : 632,
"evictions" : 0,
"fields" : {
"type" : {
"memory_size_in_bytes" : 0
},
"_id" : {
"memory_size_in_bytes" : 632
}
}
}
}