You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch match_all查询API未返回全量文档如何解决

问题原因

Elasticsearch的_search接口默认配置size=10,单次查询默认仅返回排序后的前10条匹配文档,和查询条件的命中范围无关。从你提供的返回结果可以看到,hits.total.value值为210、relation为eq,说明match_all查询已经成功命中索引内全部210条文档,只是返回结果被默认分页规则截断,才只展示了10条记录。

解决方法

小数据量场景(总文档数低于10000,当前210条数据完全适用)

直接在查询请求中添加size参数,指定本次需要返回的文档总数即可拿到全量结果,示例请求如下:

192.168.20.47:9200/new/_search
{
  "query" : {
    "match_all" : {}
  },
  "size": 210
}
  • 注意:Elasticsearch默认给单次查询设置了10000条的返回上限(由index.max_result_window参数控制),不要为了拉取超大数据集随意把size设置为10000以上,这种操作会占用大量堆内存,严重时会直接导致集群节点服务异常。

大数据量全量拉取场景(总文档数≥10000)

不要通过调大size参数拉取全量,使用官方推荐的两种方案遍历全量文档:

  • scroll滚动查询:适合离线批量导出全量数据的场景,通过维护查询快照上下文分批拉取数据,性能稳定
  • search_after深分页:适合实时性要求较高的分页遍历场景,依赖上一页最后一条文档的排序值拉取下一页内容,不受10000条返回上限的限制

内容的提问来源于stack exchange,提问作者Meikel Rizky Hartawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:48:23