【问题标题】:Neo4j find path between nodes with multiple hops and same patternNeo4j 查找具有多个跃点和相同模式的节点之间的路径
【发布时间】:2020-05-09 09:56:34
【问题描述】:

我有一个描绘交通系统的 neo4j 图表。

我的节点是:

  • 停止(像公交车站)
  • 连接(2 个站点之间的连接节点)

关系:

  • (Stop)-[:HAS]->(Connection)-[:TO]->(Stop)

我的问题是这种模式可能会像这样重复多次:

  • (Stop)-[:HAS]->(Connection)-[:TO]->(Stop)-[:HAS]->(Connection)-[:TO]->(Stop)-[:HAS]->(Connection)-[:TO]->(Stop)

我想要一个密码查询,即使它们之间有多个-[:HAS]->(Connection)-[:TO]-> 步骤,我也可以找到两个站点之间的连接。

我试过了

MATCH (:Stop)-[:HAS]->(:Connection)-[:TO]->(:Stop)

但是有了这个,我只能得到 1 跳的结果。我希望我的问题是可以理解的。 亲切的问候

【问题讨论】:

    标签: neo4j path cypher


    【解决方案1】:

    如果 :Stops 之间的唯一节点类型是 :Connections ,那么我认为这将为您提供所需的:

       MATCH (from:Stop)-[:HAS|TO*1..5]-(to:Stop)
       WHERE ...
    

    不过,从架构的角度来看,您可能需要考虑将 (:Stop)-[:HAS]->(:Connection)-[:T0]->(:Stop) 替换为仅一个关系:(:Stop)-[:CONNECTS_TO]->(:Stop)

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多