Elasticsearch分页查询性能优化策略.pdfVIP

  • 1
  • 0
  • 约小于1千字
  • 约 2页
  • 2026-05-31 发布于北京
  • 举报

在使用ES实现分页查询的时候,不要一次请求过多或者页码过大的结果,这样会对服务器造成很大的,因为它们会在返回前排序。

ES是分布式搜索,所以ES客户端的一个查询请求会发送到索引对应的多个分片中,每个分片都会生成自己的排序结果,最后再进行集中排序,以确保最果的正确性。

我们假设在搜索一个拥有5个主分片的索引,当我们请求第一页数据的时候,每个分片产生自己前10名,然后将它们返回给请求节点,然后这个请求节点会将收到的50条结果重新排序以产生最终的前10

名。

现在想象一下我们如果要获得第1,000页的数据,也就是第10,001到第10,010条数据,每一个分片都会先产生自己的前10,010名,然后请求节点统一处理这50,050条数据,最后再丢弃掉其中的50,040条!

现在我们就明白了,在分布式系统中,大页码请求所消耗的系统资源是呈指数式增长的。这也是为什么网络搜索引擎一般不会超过1,000条搜索结果的。

例如:上的效果。

当然还有一点是后面的搜索结果基本上也不是我们想要的数据了,我们在使用搜索引擎的时候,一般只会看第1页和第2页的数据。

1

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档