【问题标题】:Query on too many scroll contexts查询太多滚动上下文
【发布时间】:2020-11-25 07:03:40
【问题描述】:

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

试图创建太多滚动上下文。必须小于或等于 到 [500]。这个限制可以通过改变 [search.max_open_scroll_context] 设置。

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

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

我们如何解决这个问题?

我们的选择:

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

【问题讨论】:

    标签: elasticsearch elasticsearch-6 elasticsearch-7 resthighlevelclient


    【解决方案1】:

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

    【讨论】:

    • 感谢@Kaveh,我们将不得不探索
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多