gpt4 book ai didi

neo4j - 这个查询在 neo4j/gremlin 中是否可行?

转载 作者:行者123 更新时间:2023-12-04 05:38:20 25 4
gpt4 key购买 nike

如果我有一个看起来像这样的图表:

N3->member_of->N1
N2->knows->N1
N3->likes->N2
N4->member_of->N1
N5->likes->N2

有没有办法做一个单一的查询,将执行以下操作:
  • 如果从 N3 开始将返回 N2
  • 从 N4 开始的相同查询将返回 N2
  • 从 N5 开始的相同查询将返回 N2

  • (最好在小 Sprite 中)

    编辑:澄清:只要一级关系是“member_of”,我就可以进行二级连接。

    最佳答案

    很老的问题,但由于没有人想出 Gremlin 解决方案,这里是:

    我拿了 Bobbys 的初始化脚本:

    g = new TinkerGraph()
    (1..5).each { g.addVertex(it) }
    g.addEdge(g.v(3), g.v(1), "member_of")
    g.addEdge(g.v(2), g.v(1), "knows")
    g.addEdge(g.v(3), g.v(2), "likes")
    g.addEdge(g.v(5), g.v(2), "likes")
    g.addEdge(g.v(4), g.v(1), "member_of")

    这是您的 Gremlin 查询:
    gremlin> g.v(3).copySplit(_().out('likes'), _().out('member_of').loop('start'){true}{true}.in('knows')).exhaustMerge().dedup()
    ==>v[2]
    gremlin> g.v(4).copySplit(_().out('likes'), _().out('member_of').loop('start'){true}{true}.in('knows')).exhaustMerge().dedup()
    ==>v[2]
    gremlin> g.v(5).copySplit(_().out('likes'), _().out('member_of').loop('start'){true}{true}.in('knows')).exhaustMerge().dedup()
    ==>v[2]

    干杯,
    丹尼尔

    关于neo4j - 这个查询在 neo4j/gremlin 中是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621574/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com