Elasticsearch:对修订文档进行版本控制

标签 elasticsearch

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

问题是我不确定我应该如何有效地做到这一点:

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

问题是,如果我将键作为值,那么自动生成的模式将把所有日期作为可能的键。这不是你想要的。

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

最佳答案

就像与构建索引相关的所有事情一样,它在很大程度上取决于您要对数据执行的操作。

通常,保留过去的修订是为了审计目的,因此这是一个完全不同的查询流程。我可能会为事件文档保留一个索引,并为修订保留一个单独的索引(可能带有日期分区)。

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

还应该注意,ElasticSearch 有一些 native support for versioning ,这可能适合您。我个人只将 ES 用作索引而不是数据存储,因此我倾向于删除索引并经常重建,这会导致历史丢失。

关于Elasticsearch:对修订文档进行版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21833997/

相关文章:

json - 弹性query_string返回不需要的值

elasticsearch - Kibana和elasticsearch状态为事件,我可以通过浏览器访问elasticsearch,但是kibana出现错误

Elasticsearch 别名有多个写入索引(不是任何其他问题的副本)

elasticsearch - ElasticSearch规范化器性能影响

php - 将 Content-type header 设置为 Elasticsearch-php 客户端

elasticsearch - 聚合中发现的Elasticsearch返回命中数

java - ElasticSearch - 查询时如何匹配所有子词

elasticsearch - ElasticSearch将嵌套字段重新索引为新文档

java - 此Hibernate Search错误的原因/影响是什么?

django - 使用django haystack和elasticsearch逃脱搜索结果