2015-01-21 3 views
0

Я работаю над приложением, которое имеет сообщения, и я хочу сохранить все сообщения. Но моя проблема заключается в том, что сообщение имеет имя от имени и фамилии, которые могут измениться. Так, если, например, мой JSON былИзменение данных в каждом документе

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

Пользователь мог бы изменить свою фамилию или даже имя. Это потребует в основном циклирования каждой записи в elasticsearch и обновления всех с помощью user_id.

Есть ли лучший способ сделать это?

ответ

0

Я чувствую, что вы должны использовать родительское сопоставление. Сохраните информацию о пользователе как родительскую с идентификатором пользователя в качестве ключа.

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

Далее необходимо поддерживать каждый чат в качестве дочернего документа и сопоставлять родительский элемент с типом userindo. Таким образом, всякий раз, когда вы хотите внести некоторые изменения в пользовательскую информацию, просто внесите изменение в тип userInfo.

С помощью этой функции вы можете искать свои журналы на основе информации о пользователе или искать пользователей на основе записей чата.

Ссылка - http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/parent-child.html

Смежные вопросы