我们使用的是Elastic Search 7.6.1,在消费者中,我们从主题/队列中消费弹性操作批消息,并在ES中相应地进行ElasticSearch更新,我们碰巧在ES中按查询操作顺序执行删除序列(使用Spring Data 客户端ElasticsearchRepository.deleteAllByIdIn)顺序(由单个消费者)
我们遇到了异常:
Trying to create too many scroll contexts. Must be less than or equal to: [500]
我浏览了ES文档,它说“通过查询删除使用滚动搜索”,默认情况下,搜索引擎的存活时间为10分钟
为什么默认为10分钟?为什么会有这么高的价值?有没有办法使用ElasticsearchRepository将这个值设置为5秒?如果我将其设置为低,会有什么问题/影响?,还有就是删除API一成功,有没有办法说清除滚动?
注意:我们不打算将最大滚动上下文从500增加到更高的值,因为这会产生后果。
我看了很多文章,但找不到答案。所以把它贴在这里。
1条答案
按热度按时间qhhrdooz1#
这是一个elasticsearch bug。在7.7.0及以上版本中已修复。因此,您需要升级ElasticSearch以解决此问题。