我可以使用Cypher查询中的哪些技术仅基于每个节点的多个关系属性来获取路径

问题描述 投票:2回答:1

我有这个图数据库,其中包含两种类型的节点(neo4j中的标签),该节点是站点和路由节点。边缘也有两种类型(neo4j中的关系),连接(CONNECTED_WITH)和routeConnection(USES_STATION)。连接是两个站点节点之间的双向关系。 routeConnection是从路由节点到站点节点的关系。我知道我可以使用两个车站之间的有向关系来解决部分问题,但这只会使其他事情变得更加复杂,因为在我的情况下,该图应代表实际的物理铁路网(请注意,这不是事实我可以为我的特定项目做)。

Station节点:station node(UUID stationId的原因是由于其他微服务)

CONNECTED_WITH关系:enter image description here

路由节点:enter image description here

USES_STATION关系:enter image description here

USES_STATION关系上的connectionId属性是对应该使用到下一个工作站的连接的引用。这是因为两个站之间可以进行多个连接。路径上最后一个站点的routeConnection具有null作为connectionId的值。

这是图形数据库当前包含的内容:enter image description here

问题如下。我希望能够有一个startStationId(UUID)和一个endStationId(UUID)作为参数,并且查询应该返回所有可能的路由,这些路由可能会从起始站点到达最终站点,且要考虑方向(由connectionId确定)在USES_STATION)。

我是Neo4j和Cypher查询语言的新手。这就是我能够基于两个电台过滤掉的内容。

    MATCH p=(r1:Route)-[rc1:USES_STATION]-(x:Station)-[c:CONNECTED_WITH*]-(y:Station)-[rc2:USES_STATION]-(r2:Route)
WHERE x.stationId = '05cce0f7-1409-4224-926a-db3b4c4a8ce5' AND y.stationId = '11018de0-1943-42b2-929d-a707f751f79c' AND r1=r2
RETURN p

这是对两种可能路线的澄清。蓝色路线是我要根据方向返回的路线(从x站到y站)。enter image description here

它仍然为我提供了我不感兴趣的节点,因为查询不正确,但这并不重要。主要问题是我不知道如何像前面解释的那样仅获取所请求方向的路线节点(从x站到y站。也有可能对于所请求的站需要多条路线,我想查询以将所有可能的路径返回到目标站,以上示例仅包含1个合适的路由节点。

如果我的问题需要更多解释,请提前询问并谢谢。

neo4j cypher graph-databases
1个回答
0
投票

我给您的印象是您使用的模型是问题的一部分。您有

(:Route)-[:USES_STATION]->(:Station)

实际上,两个(:Station)节点之间的连接是路由的一部分。

您尝试过以下模型吗?

(:Station)-[:START]->(:Connection)-[:END]->(:Station)

与]结合>

(:Connection)-[:IS_PART_OF]->(:Route) 

然后可以沿着这些行查找所有(:Route)节点

// get you start and end point
WITH start,end    

// find the itineraries
MATCH itinerary=(start)-[:START|END*]->(end)

// find the connection nodes on the itineraries
WITH itinerary, [n IN nodes(itinerary) WHERE n:Connection] AS connections

// find the routes to which the connections belong
UNWIND connections AS connection
MATCH (connection)-[:IS_PART_OF]->(r:Route)
WITH itinerary,COLLECT(DISTINCT r.name) AS routes
RETURN routes
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.