滚动时间增量对弹性搜索的影响

时间:2018-09-27 11:00:45

标签: elasticsearch scroll

我正在使用ElasticSearch进行项目研究,并对其进行查询以获取成员信息。它有300万条记录。

我正在为200万用户运行广告系列,并且用户数据显示在 elasticsearch6.2 上。我查询ES,然后使用 scroll 批量获取记录(一次50条记录)。另外,我想将 SEARCH上下文保留1天,因为如果广告系列运行过程由于任何原因而失败,我可以从停止位置恢复该广告系列。这样,我将不再从头开始竞选。我还将保存 scrollID ,并将其用于恢复广告系列。

在进行测试时,我发现CPU利用率提高了50%(ES配置:在aws上运行的2个带有4个分片的节点,实例类型: i3.xlarge.elasticsearch ),其CPU利用率仍保持为50 %。

CPU使用率与将搜索上下文保留1天之间是否存在任何关系。 BTW广告活动需要6个小时才能完成。

1 个答案:

答案 0 :(得分:0)

documentation

  

通常,后台合并过程通过合并来优化索引   合并较小的细分以创建新的较大细分,   较小的段将被删除。此过程在   滚动,但开放的搜索上下文可防止旧段   仍在使用中被删除。这就是Elasticsearch的方式   能够返回初始搜索请求的结果,   不管随后对文档进行的更改。

因此,随着滚动光标过期至24h,似乎您禁止Lucene合并段,从而增加了分片的负载。

稍后在documentation中,提供了有关如何清除滚动光标的说明:

  

当滚动超时达到   被超过。但是,如前所述,保持卷轴打开是有代价的   在上一节中,因此滚动条应明确清除为   一旦清除滚动不再使用滚动   API:

在完成广告系列之后,您应该尝试清除光标。

相关问题