Контекст: У нас есть две сущности / индексы
users: {
properties: {
id: {
type: 'keyword'
}
}
}
и
connections: {
properties: {
user1: {
type: 'keyword',
},
user2: {
type: 'keyword',
}
}
}
A Соединение сущность связывает две Пользователи как друзья.
Вопрос
Для данного пользователя, как я могу найти друзей друзей?Пользователь 1 - друг с Пользователем 2, а Пользователь 2 - с Пользователем 3. Таким образом, Пользователь 3 является другом друга для Пользователя 1.
Ограничения:
денормализация не может быть реализована (пока)
Невозможно использовать отношение «родитель-ребенок», так как для соединения потребуется два родителя или мне потребуется дублироватьвсе коллекции для его работы
Единственное решение, которое приходит на ум, - это присоединения на стороне приложения, но это может привести к очень большим запросам и проблемам разбивки на страницы.
есть ли другой способ найти друзей в друзьях только с помощью запросов / агрегации?