2015-01-21 77 views
0

我正在研究具有消息的應用程序,並且我想要存儲所有消息。但我的問題是信息有可能會改變的名字和姓氏。因此,例如,如果我的JSON是更改每個文檔中的數據

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

用戶可能會更改他們的姓氏甚至名字。這將需要基本上遍歷elasticsearch中的每條記錄,並使用user_id更新每個人。

有沒有更好的方式去做這件事?

回答

0

我覺得你應該使用父映射。 將用戶信息保留爲以userID作爲關鍵字的父項。

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

接下來,您需要維護每個聊天作爲子文檔,並將父代映射到userindo類型。 這樣,只要您想對用戶信息進行一些更改,只需在userInfo類型中進行更改即可。

此功能完好無損,您可以根據用戶信息搜索日誌,也可以根據聊天記錄搜索用戶。

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