Предположим, у меня есть индекс под названием "сообщения" со следующими свойствами:
{
"uid": "<user id>",
"date": "<some date>",
"message": "<some message>"
}
И еще один индекс под названием «пользователи» со следующими свойствами:
{
"uid": "<user id>",
"gender": "Male"
}
Теперь я ищу сообщения, опубликованные мужчинами. Как я могу это сделать?
Я определенно не хочу иметь свойство "пользователь" в сообщении и хранить там пол пользователя. Потому что, когда пользователь обновляет свой пол, мне придется переходить к каждой публикации, которую он когда-либо публиковал, чтобы обновить пол.
денормализация - вот ключ. Обновление всех записей можно легко выполнить с помощью API обновления по запросу за один вызов, ничего сложного.

Elasticsearch до сих пор не поддерживает межиндексные отношения. Существует тип данных join, но он поддерживает только поля в пределах одного индекса.
Вы хотели бы использовать отображение родитель-потомок elastic.co/guide/en/elasticsearch/reference/current/…