Neo4j 2.2.5 - Dijkstra最短路径

时间:2016-03-01 19:07:39

标签: neo4j spring-data-neo4j-4 neo4j-ogm

我使用Neo4J 2.2.5和Spring Data,我想用Dijkstra计算2个节点之间的最短路径。

这是我的代码:

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);

先谢谢你帮助我!

亲切的问候, 约翰,

1 个答案:

答案 0 :(得分:0)

由于您的密码查询MATCH n WHERE id(n) = {id} RETURN n返回单个节点,您可以使用

neo4jOperations.queryForObject(Class<T> entityType, String cypherQuery, Map<String, ?> parameters)

将直接返回您的实体。 SDN / OGM不会从查询中提供原始节点或关系。

我不确定你的意思是“如何获得startVertexNode和goalVertexNode参数”