交朋友的朋友很容易,我得到了这个,看起来效果很好。
g.v(1).in('FRIEND').in('FRIEND').filter{it != g.v(1)}
但我想做的只是结交有相同兴趣的朋友的朋友。下面我希望 Joe 被推荐为 Moe,而不是 Noe,因为他们没有相同的兴趣。
您只需要扩展您的 gremlin 遍历即可越过 LIKES 边缘:
g.v(1).in('FRIEND').in('FRIEND').filter{it != g.v(1)}.dedup() \
as('friend').in('LIKES').out('LIKES').filter{it == g.v(1)}. \
back('friend').dedup()
基本上,这会发送给朋友的朋友,就像您之前所做的那样,并将管道中的位置保存在名称下friend
。然后,它会根据相互的喜好并搜索原始内容
源节点。如果找到它就会跳回来friend
. The dedup()
只是删除重复项并可能加快遍历速度。
这个方向性可能不是 100% 正确,因为您没有在图中指示边缘的方向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)