2014-02-17 142 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