ElasticSearch 进行更新操作的时候,能否保留旧版本的数据?

2015-03-16 10:05:39 +08:00
 xia0ta0
在做一个类似wiki的东西,需要保存历次的修改记录。

之前一直考虑couchdb,作为文档数据库,只是增加新的版本,之前的数据默认是不删除的;

因为需要搜索功能,不希望增加数据库的数量,打算直接用Elasticsearch。但ES更新数据之后,旧的version会删除,有什么好的方法解决这个问题吗?
9815 次点击
所在节点    Elasticsearch
4 条回复
tkliuxing
2015-03-16 11:55:24 +08:00
据我了解,ES用_version是来控制一致性的: http://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html
自己定义字段和逻辑,每次新增呗。
xia0ta0
2015-03-16 14:45:18 +08:00
@tkliuxing 文中提到了怎样显式控制_version字段,但旧的版本还是会删除的。不过还是要谢谢你啦!
halfelf
2015-03-16 14:48:54 +08:00
es的version不是来保存历史的。如果需要保留历史,通常必须多加东西。
比如
1. 曾加单独的列保存所有历史 { "data": "new data", "date": "xxxx-xx-xx", "history": [ {"data": "old 1", "date": "yyyy-yy-yy" }, {"data": "old 2", "date": "zzzz-zz-zz"}] }
2. 简单的增加纪录, {"data": "new data", "current": true} {"data": "old", "current": false}
3. 把历史纪录存到其他备份index
xia0ta0
2015-03-16 15:14:02 +08:00
@halfelf 看来只能这样做了:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/177182

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX