Neo4j embedded:使用图形算法过滤节点属性
Neo4j embedded: filter on node properties using graph algorithm
我正在使用从 eclipse 嵌入的 Neo4j,并希望在旅行和车站网络中导航。它们的连接方式如下:
(t:Trip)-[:STOPS {arrival:"10:12:00", departure:"10:13:00"}]->(s:Station)
由于一次旅行有多个停靠站,并且有多个旅行停靠在一个车站,所以有很多连接。有时,如果不换乘不同的行程,就无法从一个车站到达另一个车站。出于这个原因,我使用下面的图表算法
PathFinder<Path> finder = GraphAlgoFactory.shortestPath(PathExpanders.forType(RelTypes.STOPS), depth);
ArrayList<Path> path = (ArrayList<Path>) finder.findAllPaths(source,target);
但我找不到是否有方法可以过滤我的属性 arrival
和 departure
,因为我只想查找在给定时间后出发的行程。
您需要使用 PathExpander
的自定义实现,而不是 PathExpanders.forType()
。
您的实施基本上会过滤 path.endNode().getRelationships(RelTypes.STOPS)
那些具有正确到达和离开属性的人。
我正在使用从 eclipse 嵌入的 Neo4j,并希望在旅行和车站网络中导航。它们的连接方式如下:
(t:Trip)-[:STOPS {arrival:"10:12:00", departure:"10:13:00"}]->(s:Station)
由于一次旅行有多个停靠站,并且有多个旅行停靠在一个车站,所以有很多连接。有时,如果不换乘不同的行程,就无法从一个车站到达另一个车站。出于这个原因,我使用下面的图表算法
PathFinder<Path> finder = GraphAlgoFactory.shortestPath(PathExpanders.forType(RelTypes.STOPS), depth);
ArrayList<Path> path = (ArrayList<Path>) finder.findAllPaths(source,target);
但我找不到是否有方法可以过滤我的属性 arrival
和 departure
,因为我只想查找在给定时间后出发的行程。
您需要使用 PathExpander
的自定义实现,而不是 PathExpanders.forType()
。
您的实施基本上会过滤 path.endNode().getRelationships(RelTypes.STOPS)
那些具有正确到达和离开属性的人。