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