-2
JavaコンソールでノードIDの代わりにノード名を返す方法を知りたい。Neo4J - IDの代わりにノード名を返す
次の出力がコンソールに表示されています(ただ、すべての情報なしだけノード名で
:
所望の出力は次のようになります。空港名と同等)。
私のJavaコードは次のようになります。
package com.routesNeo4j;
import org.neo4j.driver.v1.*;
import java.util.ArrayList;
import java.util.List;
/**
* Created by e on 11.06.17.
*/
public class Neo4JRouting implements AutoCloseable, Neo4J_Connector {
static Driver driver;
public Neo4JRouting(String startAirport, String destinationAirport, StatementResult shortestPath) {
driver = GraphDatabase.driver("bolt://ec2-13-58-101-13.us-east-2.compute.amazonaws.com:7687",
AuthTokens.basic("neo4j", "Einloggen_123"));
try(Session session = driver.session()) {
shortestPath = session.run("MATCH (a:" + startAirport.toLowerCase() + "), (b:" + destinationAirport.toLowerCase()
+ "), p = allShortestPaths((a)-[r*1..4]-(b)) UNWIND rels(p) AS rel RETURN nodes(p), sum(rel.weight) " +
"AS weight ORDER BY sum(rel.weight)");
List<Record> storeList = storeList(shortestPath);
while (shortestPath.hasNext()) {
System.out.println(shortestPath.next().toString());
}
System.out.println(storeList);
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Record> storeList(StatementResult statementResult) {
List<Record> list = new ArrayList<>();
while (statementResult.hasNext()) {
list.add(statementResult.next());
}
return list;
}
@Override
public Driver runDriver(String user, AuthToken basicAuthToken) throws Exception {
return null;
}
@Override
public void close() throws Exception {
}
}
私はあなたの答えを楽しみにしています。どうもありがとう!
IHDSMutator < - これはなんですか?それを見て、私はそれのためのパッケージやlibを見つけることはありません。説明していただけますか? –
これは、結果を返すために使用する構造の例です。実際には、XMLドキュメントに似た、階層的なデータ構造(HDS)です。これは私の例の要点ではありませんが、実際のデータを抽出するためにクエリから取得した結果を処理しなければならないという点が重要です。実際には、コンソールにのみ印刷したい場合は、結果を保持するための構造体は必要ありません。 –