解决Elasticsearch查询默认最大值返回10000

文章目录

  • 1:问题描述
    • 1:描述
    • 2:分析
  • 2:解决方案
    • 1:更改当前索引最大查询条数-max_result_window
    • 2:能查出数据,但是total依然还是1000-更改track_total_hits
    • 3:当java使用时应该
    • 4:当利用sql查询时

1:问题描述

1:描述

解决Elasticsearch查询默认最大值返回10000_第1张图片
解决Elasticsearch查询默认最大值返回10000_第2张图片
解决Elasticsearch查询默认最大值返回10000_第3张图片

报错:Result window is too large, from + size must be less than or equal to: [10000] but was [10011]. See the scroll api for a more efficient way to request large data sets

2:分析

es官方默认限制索引查询最多只能查询10000条数据,查询第10001条数据开始就会报错:
即使你只是分页查询置查10条

2:解决方案

1:更改当前索引最大查询条数-max_result_window

{
“index”:{
“max_result_window”:2147483647
}
}
解决Elasticsearch查询默认最大值返回10000_第4张图片
设置完最大条数,就可以查询了
解决Elasticsearch查询默认最大值返回10000_第5张图片
解决Elasticsearch查询默认最大值返回10000_第6张图片

2:能查出数据,但是total依然还是1000-更改track_total_hits

解决Elasticsearch查询默认最大值返回10000_第7张图片

在查询时候把 track_total_hits 设置为 true。

track_total_hits 设置为false禁用跟踪匹配查询的总点击次数

设置为true就会返回真实的命中条数。
解决Elasticsearch查询默认最大值返回10000_第8张图片

3:当java使用时应该

searchSourceBuilder.trackTotalHits(true);

4:当利用sql查询时

SELECT  /*! TRACK_TOTAL_HITS(true) */  * FROM user

你可能感兴趣的:(#,Elasticsearch,elasticsearch,大数据,搜索引擎)