2017-01-24 55 views
1

我有一个数据源,它将创建大量我打算存储在ElasticSearch中的条目。 源创建在ElasticSearch两个条目为同一个文件:在使用滚动API时更新ElasticSearch(ES)中的现有文档

  • 它记录初始化时间和其他细节ES
  • “完成”部分包含主要的随机项下的“初始化”部分数据,并使用init的随机密钥更新ES中最初创建的文档(合并)。

我将需要使用基于时间的指标在ElasticSearch,与使用rollover index的别名,指向实际指标, 。 对于更新,我将使用update API来合并init和finish。

问题:如果带有随机密钥的初始文档不在当前索引中(但在较旧的文档中已经翻转过),那么使用它的密钥 成功执行更新?如果不是,执行更新的最佳做法是什么?

回答

0

经过一番安静后,我开始测试它。

简答:索引在别名下翻转后,使用别名的更新操作仅引用新索引,因此它将在新索引中创建文档,从而生成两个单独的文档。

解决它的一种方法是在最后2个(或更多如果需要)索引中执行搜索,并找出哪个非别名索引名称用于更新。

我更喜欢的其他解决方案是避免使用翻转,但是从我们文档的必需日期字段计算索引名称,并使用模板定义映射来创建应用程序的新索引。通过这种方式,事件源和按顺序重播文档将产生相同的索引。

相关问题