查询过多的滚动上下文



我们使用的是ES版本6.4,我们希望升级到7.4。在测试升级以使用Scroll进行分页搜索时,我们面临以下问题:

试图创建过多的滚动上下文。必须小于或等于至[500]。可以通过更改[search.max_open_scroll_context]设置。

看起来我们只能打开500个滚动上下文。

当我们启动滚动时,会创建一个滚动上下文(上下文a(,并且滚动id指向上下文(上下文B(。当我检索下一批时,会创建一个新的滚动上下文(上下文B(。我收到了相同的滚动Id(现在它指向上下文B(。旧的滚动上下文(上下文A(发生了什么。它会立即关闭GC吗?或者只有在滚动时间到期后才会发生?如何清除旧的滚动上下文?与旧上下文(上下文A(相关联的滚动Id现在指向新上下文(上下文B(。

我们如何解决这个问题?

我们的选择:

  1. 我们可以在设置中增加滚动上下文。有什么问题吗如果我们将滚动上下文增加到一个更高的数字(例如:10000(
  2. 使用后清除滚动上下文。我们观察到了相同的卷轴id返回以检索后续批次。我们如何清除为旧批次创建的滚动上下文

使用Search after而不是Scroll API可能是更好的选择,因为ES不再建议Scroll API进行深度分页(ES 7.x(。您可以在ElasticSearch文档页面上找到更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/7.x/scroll-api.html

最新更新