【问题标题】:How can I use until in janusgraph?我如何在janusgraph中使用直到?
【发布时间】:2023-03-28 00:20:01
【问题描述】:
gremlin> a = graph.addVertex("name", "alice")
gremlin> b = graph.addVertex("name", "bobby")
gremlin> c = graph.addVertex("name", "cindy")
gremlin> d = graph.addVertex("name", "david")
gremlin> e = graph.addVertex("name", "eliza")
gremlin> a.addEdge("rates",b,"tag","ruby","value",9)
gremlin> b.addEdge("rates",c,"tag","ruby","value",8)
gremlin> c.addEdge("rates",d,"tag","ruby","value",7)
gremlin> d.addEdge("rates",e,"tag","ruby","value",6)
gremlin> e.addEdge("rates",a,"tag","java","value",9)

g.V().has('name', 'alice').repeat(out()).times(6).cyclicPath().path().by('name')

我想以 alice 节点结束。我想重复所有步骤,不想将时间指定为 6。要求是我想从 alice 获取所有循环或从图中获取所有循环。

【问题讨论】:

    标签: gremlin tinkerpop3 janusgraph


    【解决方案1】:

    您可以参考 TinkerPop 食谱中的 Cycle Detection 部分 - 它很容易适应您的示例图:

    gremlin> g.V().has('name', 'alice').as('a').
    ......1>   repeat(out().simplePath()).
    ......2>     emit(loops().is(gt(1))).
    ......3>   both().where(eq('a')).
    ......4>   path().
    ......5>     by('name').
    ......6>   dedup().
    ......7>     by(unfold().order().dedup().fold())
    ==>[alice,bobby,cindy,david,eliza,alice]
    

    【讨论】:

    • 但我也有下面的 script.g.V().has('name','alice').repeat(out()).until(has('name','alice')) .cyclicPath().limit(5).path().by('name')
    • 但我也想获取每条路径的值。你能帮我解决这个问题吗?
    • 我会为它打开另一个问题。你能帮帮我吗?
    • 我刚刚打开了。可以开张支票吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多