我在空闲时间一直在研究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
有没有办法让探路者考虑给定关系是否具有应该阻止该路径进展的属性?