Elasticsearch 深度分页难题:Scroll 内存溢出与 Search_After/Point In Time 快照优化 大家好,今天我们来聊聊 Elasticsearch 中深度分页的问题,以及如何利用 scroll、search_after 和 Point in Time (PIT) 快照来优化深度分页,特别是避免内存溢出。 深度分页的挑战:为什么 from/size 不靠谱? 在 Elasticsearch 中,最简单的分页方式就是使用 from 和 size 参数。from 指定起始文档的位置,size 指定返回的文档数量。例如: GET /my_index/_search { “from”: 1000, “size”: 10 } 这段代码会跳过前 1000 个文档,然后返回接下来的 10 个文档。看起来很简单,但当 from 的值变得非常大时,问题就来了。 性能瓶颈: Elasticsearch 需要检索 from + size 个文档,然后在内存中排序,最后丢弃 from 个文档,只返回 size 个。这在 from 值很大时会消耗大量的 CPU 和内存资源。 i …
继续阅读“Elasticsearch深度分页scroll内存溢出?search_after与PointInTime快照优化”