更改每个文档中的数据

问题描述:

我正在研究具有消息的应用程序,并且我想要存储所有消息。但我的问题是信息有可能会改变的名字和姓氏。因此,例如,如果我的JSON是更改每个文档中的数据

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

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

有没有更好的方式去做这件事?

我觉得你应该使用父映射。 将用户信息保留为以userID作为关键字的父项。

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

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

此功能完好无损,您可以根据用户信息搜索日志,也可以根据聊天记录搜索用户。

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