上下文: 我们有两个实体/索引
users: {
properties: {
id: {
type: 'keyword'
}
}
}
和
connections: {
properties: {
user1: {
type: 'keyword',
},
user2: {
type: 'keyword',
}
}
}
连接实体将两个用户链接为好友。
问题
对于给定的用户,我如何找到朋友的朋友? 用户1是用户2的朋友,用户2是用户3的朋友。因此,用户3是用户1的朋友的朋友。
限制:
还不能实现非规范化
父子关系不能使用,因为该连接需要有两个父级,或者我需要复制所有集合才能起作用
想到的唯一解决方案是通过应用程序侧连接,但这可能会导致非常大的查询和分页问题。
是否还有其他方法可以仅通过查询/汇总来找到朋友的朋友?