【问题标题】:Neo4j path traversal - path progress dependent on relationship attributeNeo4j 路径遍历 - 依赖关系属性的路径进度
【发布时间】:2013-11-10 11:47:02
【问题描述】:

我只是在空闲时间研究neo4j,使用python 的py2neo 绑定。我对 neo4j 的寻路方面很感兴趣。出于学习的目的,我一直在创建一个简单的游戏地图(太阳系和内部坐标导航)。简单的寻路实现起来非常简单,即使在复杂的节点网络上具有长路径,neo4j 的性能也确实令人印象深刻。

我现在热衷于将属性附加到可以影响导航的关系。例如,我想将给定的关系锁定为仅与某些用户、角色或具有密钥的人。

我不确定如何将其添加到寻路中,以便它查找路径,但在执行此操作时,它会检查是否存在满足/拒绝的其他约束。

是否可以根据关系属性阻止路径,即下面的伪表示:

(node 5, 'linked', node 6) with attribute 'path_blocked': True

无前置条件:

start s=node(22), e=node(46)
MATCH p = shortestPath((s)-[*..100]-(e))
return p

有没有办法让探路者考虑给定的关系是否有一个属性会阻止这条路径的进展?

【问题讨论】:

    标签: python neo4j cypher graph-databases py2neo


    【解决方案1】:

    在 Cypher 中,您可以使用 WHERE 子句根据关系属性过滤路径。

    如果您在遍历期间需要更多控制,您应该查看Traversal API。但是我不确定是否可以从 py2neo 访问遍历 API。如果没有,您可以在 unmanaged extension 中使用遍历 API 并通过 REST 访问此 API。

    【讨论】:

    • 很遗憾,py2neo 不再支持遍历 A​​PI。
    猜你喜欢
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多