【问题标题】:gremlin get all nodes which are directly or indirectly connected for a given nodegremlin 获取与给定节点直接或间接连接的所有节点
【发布时间】:2019-01-16 19:21:49
【问题描述】:

我是 gremlin 的新手。

我正在尝试获取(直接或间接)连接到给定顶点的所有节点。
例如:
图中这样的一个集群。
广告
AF
FB
BC
B-G
G-H
G-I

图中这样的第二个集群。
J-k
J-L

我的要求当我搜索节点“B”时,我只需要获取 B 的所有连接顶点(无边方向)。
前输出:A,D,F,B,C,G,H,I

当我搜索 J.
前输出:J,k,L

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

    标签: gremlin tinkerpop janusgraph amazon-neptune


    【解决方案1】:

    很简单:

    g.V('B').emit().repeat(both().dedup()).toSet()
    

    你基本上是在两个方向上遍历并发射你看到的每个顶点,直到没有找到新的顶点。

    【讨论】:

    • 非常感谢,我可以找回这个了。
    • 再次感谢,这也适用于大量边缘吗?就像我有 5 亿条边和 3 亿个顶点。如何为此运行 OLAP 查询?并将结果存储在 hdfs/某个文件系统中。任何帮助将不胜感激。
    • 在这种情况下,您应该考虑使用ConnectedComponentVertexProgram 并查看Interacting with Spark
    • 感谢您的帮助。我正在研究 aws neptune,但这不支持 graph.traversal().withComputer() (OLAP) 知道我该怎么做吗?我正在使用 apache-tinker pop 3.3.2。根据文档AWS neptune 支持 OLAP 服务。
    • 嗯,很遗憾,我从未使用过 Neptune,也找不到任何有关如何使用 OLAP 的说明。
    猜你喜欢
    • 2021-09-22
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多