一、引言
在使用es进行数据查询时,由于es官方默认限制了索引一次性最多只能查询10000条数据,这其实是es的一种保护机制,那么很多时候我们需要突破这种限制,例如需要进入数据同步的场景,则需要查询全部的数据,如何处理呢?
二、解决方案
方案1:在设置索引属性时解除索引最大查询数的限制
put _all/_settings
{
"index.max_result_window":200000
}
_all表示所有索引,针对单个索引的话修改成索引名称即可
方案2::在创建索引的时候加上
"settings":{
"index":{
"max_result_window": 500000
}
}
方案3:修改API调用时代码配置
通过以上的处理,我们发现,当我们项目中通过API操作ES时还是没有生效,还是只能查询前10000条,这时候需要在API中添加这样一行代码:文章来源:https://www.toymoban.com/news/detail-501742.html
searchSourceBuilder.trackTotalHits(true);
通过上面方案,即可实现突破Es官方限制的只能查询前10000条的限制。文章来源地址https://www.toymoban.com/news/detail-501742.html
到了这里,关于es解决只能默认查询10000条数据方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!