2014-02-17 140 views
3

我目前有一个定期修改的文档,我想通过保留文档的每个旧版本来跟踪文档。因此,如果文档A具有摘要和更新日期,我希望在每次更新之后保留以前的版本及其更新数据。Elasticsearch:修订版本文档

的问题是,我不知道我应该如何有效地做到这一点:

...{ 
     Title: A 
     Summary: {update_date:content, update_date:content, ...} 
    } 

的问题是,如果我把密钥值,则自动生成的模式将采取一切日期为可能的密钥。这不是你想要的。

所以我的问题是什么是在ElasticSearch中按日期跟踪所有修订的最有效方法?

+0

你有没有找到解决方案?因为我有同样的问题。 – jones

回答

3

就像所有与构建索引相关的东西一样,它高度依赖于您想要对数据执行的操作。

通常,保留过去的修订是为了审计目的而完成的,因此它是完全不同的查询流程。我可能会为活动文档保留一个索引,并为修订提供单独的索引(可能包含日期分区)。

每个更新都需要更新实时文档并在修订索引中插入新文档。

还应该注意的是,ElasticSearch有一些native support for versioning,这可能适合您。我个人使用ES作为索引而不是数据存储,所以我倾向于放弃索引并经常重建,这会导致历史丢失。

+1

本机版本支持的问题在于您确实可以使用外部版本控制,但是您只需在elasticsearch中保留最新版本,而不是问题中提到的所有修订版本。 – javanna