项目场景:GraphHub使用Gremlin图遍历语言查询经过某一点的路径
项目场景:在一个案件中警方排查到了受害人的身份信息,现在要根据受害人的信息查询出来所有和受害人相关联的人员信息。这个时候我们就用到了图谱中根据某个顶点查询所有路径的场景。
函数使用说明
- repeat(): 指定要重复执行的语句,如repeat(out(‘friend’))
- times(): 指定要重复执行的次数,如执行3次repeat(out(‘friend’)).times(3)
- until():指定循环终止的条件,如一直找到某个名字的朋友为止repeat(out(‘friend’)).until(has(‘name’,‘xiaofang’))
- emit(): 指定循环语句的执行过程中收集数据的条件,每一步的结果只要符合条件则被收集,不指定条件时收集所有结果
- loops():
当前循环的次数,可用于控制最大循环次数等,如最多执行3次repeat(out(‘friend’)).until(loops().is(3))
最终使用函数
g.V(‘xxxid’)
.repeat(out().simplePath())
.until(hasLabel(‘xxx’))
.path()
详解
- g.V(‘xxxid’): 确定某个顶点,xxxid是顶点的id
- .repeat(out().simplePath()): 重复执行out().simplePath() 操作,,意思就是找出相邻出去的顶点,不考虑闭环的情况,闭环会造成无线和循环。
- .until(hasLabel(‘xxx’))终止条件是,当相邻出去的顶点概念是xxx的时候就停止执行