Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j cyper查询:如何跟踪_Neo4j - Fatal编程技术网

Neo4j cyper查询:如何跟踪

Neo4j cyper查询:如何跟踪,neo4j,Neo4j,我正在尝试学习neo4j,所以我只是拿了一个旅游应用程序的用例来学习,但我不确定解决它的最佳方法。任何帮助都将不胜感激 提前谢谢 请考虑一个用例,我必须乘火车从一个地方(放置< < /强>)到其他(地点C < /强>),但这两个地方之间没有直接联系。所以我们必须在B地点换车 两个地方通过一个关系连接起来。参考图像中的绿色节点 然后,如果两个位置之间存在连接关系,则将存在输出关系,即通过连接到两个节点的公共列车,这意味着它们是如何连接到图像中的红色节点的 我的问题是我们怎么知道我们必须从b站换站

我正在尝试学习neo4j,所以我只是拿了一个旅游应用程序的用例来学习,但我不确定解决它的最佳方法。任何帮助都将不胜感激

提前谢谢

请考虑一个用例,我必须乘火车从一个地方(<强>放置< < /强>)到其他(<强>地点C < /强>),但这两个地方之间没有直接联系。所以我们必须在B地点换车

两个地方通过一个关系连接起来。参考图像中的绿色节点

然后,如果两个位置之间存在连接关系,则将存在输出关系,即通过连接到两个节点的公共列车,这意味着它们是如何连接到图像中的红色节点的

我的问题是我们怎么知道我们必须从b站换站

我的理解是:

  • 我们将通过IS_connected relationship检查这两个地方的连接位置

    比赛(开始:地点{name:“海德堡”}),(结束:地点{name:“法兰克福”}) 匹配路径=(开始)-[:已连接*。]->(结束) 返回路径

  • 这将表明这两个地方是相连的

  • 然后我们将看到查询是否直接连接了位置A和位置c


    match(p:place{name:“heidelberg”})-[:CONNECTED_VIA]->(q)您需要在:CONNECTED_VIA match中使用可变长度关系,然后获取路径中的:place节点。使用上界通常是个好主意,不管在图形中有什么意义

    然后,我们可以在路径中的节点上使用过滤器,只保留以下节点:放置节点

    match path = (p:place{name:"heidelberg"})-[:CONNECTED_VIA*..4]-(t:place{name:"frankfurt"}) 
    return path, [node in nodes(path)[1..-1] where node:Place] as connectionPlaces
    
    如果您只对最短路径感兴趣,您可能需要查看最短路径

    最后要注意的一点是……在确定两个位置是否连接时,如果它们连接时只需要一个true或false,则可以使用EXISTS()函数返回是否存在这样的模式:

    match (start:place{name:"heidelberg"}), (end:place{name:"frankfurt"}) 
    return exists((start)-[:IS_CONNECTED*..5]->(end))
    

    非常感谢你!!这就是我要找的