解决Elasticsearch默认条数限制查询
Elasticsearch官方讲解
在Elasticsearch中默认限制索引查询最多只能查询10000条数据,查询的条数超出这个值就会报错但是莫得慌,通过阅览了网友们的众多说法以及ES官方的资料得知,影响查询的是该配置 max_result_window,我们都知道很多时候10000数据不能满足项目的需求,因此我们需要自己来设置这个默认值。
解决方案:
方案①在kibana中创建索引时加上该设置
“settings”:{
"index":{
"max_result_window": 1000000000
}
}
方案② Kibana设置总条数限制
PUT _all/_settings
{
"index.max_result_window":1000000000
}
特别说明:_all表示所有索引库,如果只针对单个索引库修改成对应要设置的索引库名称即可!!!
#上述的配置之后查询还是只有一万条, 经过查询发现还需要配置track_total_hits=true才能返回真实数据
解决如下
在查询时设置 track_total_hits = ‘true’ 就会返回出最终的真实数据条数
KIbana查询设置
GET 索引名/_search
{
"query": {
"match_all": {}
},
"track_total_hits":true
}
对应的JAVA API查询设置:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.trackTotalHits(true);