前言 Elasticsearch(ES)中进行分页查询时,最佳实践取决于具体的使用场景和需求。 以下是对每种分页方法的简要分析以及它们适用的情况: 实现方式 最常见且直观的方法,通过from参数指定跳过多少条记录,size参数指定每次返回多少条记录。 优点:实现简单,适用于小规模或浅层分页,即前几页查询。 缺点:随着from值增大,查询效率会显著降低,尤其是在深度分页的情况下(例如,查询很多页之后的数据),因为ES需要遍历所有之前的结果才能找到指定偏移的结果集,这对分布式系统来说成本非常高。 提供了一种持续检索大量数据的方式,创建一个“滚动”上下文,可以在一段时间内保持一致性视图。 优点:非常适合大数据量的批量读取或深度分页,尤其是在不需要考虑数据实时更新的情况下,如数据导出或批处理任务。 缺点:滚动上下文会占用服务器资源,且对实时性要求高的场景不合适,因为它反映的是某个时间点的快照状态,不能反映出滚动上下文创建后数据的变化。 从ES 5.0版本开始提供,用于克服from+size在深度分页时的性能瓶颈。 优点:利用 _score...