【发布时间】:2012-01-03 08:03:04
【问题描述】:
我已经阅读了关于 ES 的关于 versioning 的博文。
但是,我希望能够从更新中获取以前的“_souce”文档。
例如,假设我有这个对象:
{
"name": "John",
"age": 32,
"job": "janitorial technician"
}
// this becomes version 1
我将其更新为:
{
"name": "John",
"age": 32,
"job": "president"
}
// this becomes version 2
那么,通过 ES 中的版本控制,我是否能够获得对象之前的“作业”属性?我试过这个:
curl -XGET "localhost:9200/index/type/id?version=1"
但这只会返回最新的 _source 对象(John 担任总裁的对象)。
我实际上很想像 StackOverflow 那样实现版本差异方面。 (顺便说一句,我使用弹性搜索作为我的主要数据库 - 如果有办法与其他 nosql 数据库一起执行此操作,我很乐意尝试一下。最好与 ES 很好地集成。)
【问题讨论】:
-
您找到解决方案了吗?我决定选择 DrTech 建议的选项 1,但有搜索问题,其他人建议我使用第二个选项,但在使用 laravel elasticquent 为索引制作该数组时遇到问题。
-
@jones 我从事这个项目已经有一段时间了,但我从下面实现了 DrTech 的#3 解决方案。它对我来说完美无缺。每次更新对象时,首先将旧版本保存在不同的索引中。然后,您可以根据您的唯一标识符进行查询。
标签: elasticsearch