0
我使用的是Spring Data的Neo4J 2.2.5,我想使用Dijkstra来计算2个节点之间的最短路径。Neo4j 2.2.5 - Dijkstra最短路径
这是我的代码:
PathFinder<WeightedPath> finder = GraphAlgoFactory
.dijkstra(PathExpanders.forTypeAndDirection(RelationshipTypes.SEM_SIM, Direction.BOTH),
Constants.ADVERTISED_COST);
WeightedPath path = finder.findSinglePath(startVertexNode, goalVertexNode);
我怎样才能获得startVertexNode和goalVertexNode参数?使用下面的密码方法可以获得正确的数据,但是如何将结果转换为节点?
Map<String, Object> params = new HashMap<String, Object>();
params.put("id", 0);
String query = "MATCH n WHERE id(n) = {id} RETURN n";
org.neo4j.ogm.session.result.Result result = this.neo4jOperations.query(query, params);
在此先感谢帮助我!
亲切的问候, 约翰,
的findSinglePath方法的参数类型是org.neo4j.graphdb.Node的意思。问题是我如何使用SDN从一个ID开始获取这些对象? –
除非您将SDN 4.1与嵌入式驱动程序一起使用,否则无法从图形中获取节点。如果您确实使用嵌入式驱动程序,那么您可以使用嵌入式API通过id来获取起始和结束顶点。但是会话/查询不会有帮助,因为所有返回的都是一个域实体,而不是一个节点。 – Luanne