今天项目查询ES遇到一个问题,用search_after排序的相关问题。
生产环境查询报Data too large错误
{
"query": {
"bool": {
...
"filter": [
...
]
}
},
"size": 10,
"from": 0,
"sort": [
{
"timeDim": "desc"
},
{
"_uid": "desc"
}
]
}
当用_uid来进行排序的时候,会加载索引所有的数据进入内存,造成Data too large报错。
CircuitBreakingException[[fielddata] Data too large, data for [_uid] would be [3341806732/3.1gb],
which is larger than the limit of [3087007744/2.8gb]]"
可以调整 indices.fielddata.cache.size 来暂时解决。
最后还是需要调整分页方式来解决