es官方默认限制索引查询最多只能查询10000条数据,查询第10001条数据开始就会报错:
Result window is too large, from + size must be less than or equal to
但是很多时候10000数据不能满足项目的需求,所以我们就要解除这个限制。
解决方案:
第一种办法.在kibana中执行,解除索引最大查询数的限制
put _all/_settings
{
"index.max_result_window":200000
}
_all表示所有索引,针对单个索引的话修改成索引名称即可
第二种办法:在创建索引的时候加上
“settings”:{
"index":{
"max_result_window": 500000
}
}
但是修改完之后,通过api查询回来的totalhits还是只有10000条,解决如下 :
在查询时候把 track_total_hits 设置为 true。
track_total_hits 设置为false禁用跟踪匹配查询的总点击次数
设置为true就会返回真实的命中条数。
java代码在构建条件时候加上:
searchSourceBuilder.trackTotalHits(true);
kibana查询
GET 索引名/_search
{
"query": {
"match_all": {}
},
"track_total_hits":true
}