【问题标题】:Using gremlin to find all nodes within a given distance from the start node使用 gremlin 查找距起始节点给定距离内的所有节点
【发布时间】:2013-01-21 02:35:57
【问题描述】:

我正在尝试通过 java/pipes 使用 gremlin,作为我的第一个查询之一,我正在尝试查找从给定起始节点可到达的所有节点,最大距离为 3。在密码中,我的查询是:

START n = node(*)
MATCH n -[*1..3]-> reached 
WHERE (has(n.id) and n.id = \"v1\")
RETURN distinct n, reached

哪个工作正常,到目前为止我在 gremlin 中所拥有的是:

_().has('idd', 'v1').out().loop(1){it.loops < 3}{true}

无法正常工作。根据我的理解,它应该从每次迭代中发出输出并迭代 3 次。目前我得到的结果太少了。

任何帮助将不胜感激,

谢谢。

【问题讨论】:

    标签: groovy cypher gremlin


    【解决方案1】:

    如果您的起始节点是 g.v(1),那么要在三步之外找到所有唯一节点:

    g.v(1).out.loop(1){it.loops < 3}{true}.dedup
    

    ..您可能必须使其

    g.V('idd','v1').out.loop(1){it.loops < 3}{true}.dedup
    

    确保您在 idd 上有一个索引,否则它是线性扫描所有 g.V 的那些具有 idd=v1 的顶点。

    HTH, 马尔科。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多