在 Elasticsearch 中,当我们需要获取大量数据(Deep Pagination,即深度分页)时,标准的 + 方式在数据量超过 10,000 条时会失效且性能极差。Scroll API 和 Search After 是解决这一问题的两种主要机制。 以下是两者的详细对比、核心区别及适用场景。 --- 1. 核心概念简述 Scroll API (滚屏快照) 原理:类似于传统数据库的游标(Cursor)。它会在搜索开始时创建一个索引的快照(Snapshot)。 机制:Elasticsearch 会在服务端维护一个“搜索上下文”(Search Context),即使在查询过程中有新数据写入或旧数据删除,Scroll 依然只能看到快照建立时的数据。 现状:在 Elasticsearch 7.x 及更高版本中,官方已不再推荐用于实时用户请求,并建议用 + (Point In Time) 替代。 Search After (游标分页) 原理:基于上一页最后一条数据的排序值(Sort Values)来检索下一页数据。 机制:它是无状态的(Stateless)。每一次查询都是独立的,它告...