ElasticSearch - 维护不同版本的原始时间戳

时间:2013-08-01 21:32:53

标签: elasticsearch

我在索引上启用了自动_timestamp,但每次在_bulk请求(或常规更新)期间更新索引时,时间戳也会更新。这是有道理的。

我想知道在更新后是否有办法保留原始时间戳?所以我们只看到版本1的时间戳,无论它更新到新版本的次数。

我拥有超过4百万个索引并以1000块为单位进行批量更新,所以我宁愿不遍历每个项目来比较时间戳。

任何提示?

1 个答案:

答案 0 :(得分:0)

对于将来遇到此问题的任何人,我最终使用批量更新和脚本的组合来设置日期。这仅在创建索引时发生,并且在更新期间保持不变。我不确定这是否是最优雅的解决方案,但它确实有效。

{ "update": {"_id" : "1"} },
{ "script": "", "upsert" : {"og_index_date" : 20130826}},
{ "update": {"_id" : "1"} },
{ "doc": {"field1" : "one", "field2": "two"}, "doc_as_upsert" : True }

即使您的写入量增加了一倍,它也会在不同版本中保留此日期。