Janusgraph学习记录(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Janusgraph学习记录(2)


前言

学习Janusgraph的相关记录,全部都是实操,概念不赘述。


一、gremlin进阶语法

1.递归查询的几种写法

基本写法:
在这里插入图片描述
便捷写法:
repeat(traversal):重复循环遍历操作,知道接收到停止为止。traversal表示循环中重复的一组gremlin操作。
times(integer):repeat()循环的修饰符。integer表示循环次数。
until(traversal):repeat()循环的修饰符。traversal表示循环计算一遍的一组gremlin操作。,当计算结果为true时,退出repeat()循环。简单来说就是循环停止条件。
所以上述查询可修改为以下两种写法:
不清楚重点属性、但知道跳数的查询方法:在这里插入不知道图片描述
或者是知道重点属性的查询方法:
在这里插入图片描述
相对来说还是很灵活的。但需要注意的是,使用until查询时,会产生性能问题,条件不满足时有可能遍历全图路径,建议加上times指定最大迭代次数或者使用timeLimit()指定查询时间。

要说明一点until操作在repeat之前,相当于while-do操作,反之是do-while操作,差别就是后者在检查之前已经执行过一次操作。
另外,我们在查询时有可能不知道循环次数,需要起始、中间路径、结尾的信息,这时可以通过添加emit()来实现查询结果。
在这里插入图片描述
同样的查询语句在python里面执行只能查出起始点,暂时还没试出来怎么在pycharm里面打印出全路径。。。用emit不能完全展示,尝试了如下方法,还是不尽如人意,有懂的欢迎留言指导,谢谢
在这里插入图片描述
另外,emit在repeat之前和之后的结果不一样,在linux环境emit在repeat之前可以显示全路径,在repeat之后显示的路径不包含起点且终点重复。
在这里插入图片描述
递归遍历基本就这些,下一节是图变异。


总结

欢迎评论区交流一起进步。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值