大数据量聚合,报fielddata too large 错误

Elasticsearch | 作者 hm | 发布于2019年01月03日 | 阅读数:456

6个节点的集群,ES版本5.5.1,查询索引包含10亿条记录,聚合语句如下
{
"query": {
"match": {
"fid": "614A2FAAD05646E3BF968D18B62CC264"
}
},
"aggs": {
"xx": {
"terms": {
"field": "dkbm",
"size": 10,
"collect_mode": "breadth_first"

}
}
}
}
为什么我已经用查询将聚合数据限制为一条了  还是报fielddata  too large 的错误
已邀请:

God_lockin

赞同来自:

计算数据量太大内存崩了吧

novia - 1&0

赞同来自:

 
{
"query": {
"match": {
"fid": "614A2FAAD05646E3BF968D18B62CC264"
}
},
"aggs": {
"xx": {
"terms": {
"field": "dkbm",
"execution_hint": "map",
"size": 10,
"collect_mode": "breadth_first"
}
}
}
}
改成这样试试

novia - 1&0

赞同来自:

es的聚合并不是理解的用查询结果进行聚合,如果想用查询结果聚合。需要查询过滤或者聚合过滤

rochy - rochy_he@tw

赞同来自:

  • 清理下索引的 cache;
  • 调大节点的 HeapSize;
  • 将结果分段

 
参考文档:https://www.elastic.co/guide/e ... tions
 
 

要回复问题请先登录注册