更改每个文档中的数据

时间:2015-01-21 04:38:54

标签: elasticsearch

我正在处理一个有消息的应用程序,我想存储所有消息。但我的问题是消息有一个名字和姓氏,可能会改变。所以,例如,如果我的JSON是

{
    "subject": "Hello!",
    "message": "Hello there",
    "from": {
        "user_id": 1,
        "firstname": "George",
        "lastname": "Lastgeorge"
    }
}

用户可能会更改姓氏甚至名字。这需要基本上遍历elasticsearch中的每个记录并使用user_id更新每个人。

还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我觉得你应该使用父映射。 将用户信息保留为父级,并将userID作为密钥。

/index/userinfo/userID
    {
       "name" : "George",
       "last" : "Lastgeorge"
    }

接下来,您需要将每个聊天维护为子文档,并将父级映射到userindo类型。 这样,只要您想对用户信息进行一些更改,只需在userInfo类型中进行更改。

完整此功能后,您可以根据用户信息搜索日志,或根据聊天记录搜索用户。

链接 - http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/parent-child.html