목표는 노드의 모든 관계를 반복하고 각 관계의 특정 속성 하나를 인쇄하는 것입니다. 내 노드에는 많은 관계가 있습니다 (수십만 개). 내 반복은 반복 루프에서 느리고 느리게 진행됩니다. 누군가 내 코드에 대한 제안이나 의견을 제시 할 수 있습니까? 미리 감사드립니다! 당신이 매일 균형을 플롯하려는 경우Neo4j에서 getProperty()가 느려지고 느려짐
Node _node = sHelper.getNodeById(id);
if (_node != null) {
try (Transaction tx = graphDB.beginTx()) {
if (_node.hasProperty("PublicKey")) {
try {
double coin = 0;
BufferedWriter writer = new BufferedWriter(new FileWriter("./"+id+"_balance.txt"));
//Iterator<Relationship> rels = _node.getRelationships(Direction.INCOMING).iterator();
int kk = 0;
for(Relationship rel : _node.getRelationships(Direction.INCOMING)){
//Relationship rel = rels.next();
coin = (double) rel.getProperty("Bitcoin");
if((kk++)%10000==0){
System.out.println(appr+"\t"+coin);
}
}
kk=0;
//rels = _node.getRelationships(Direction.OUTGOING).iterator();
for(Relationship rel : _node.getRelationships(Direction.OUTGOING)){
//Relationship rel = rels.next();
coin = (double) rel.getProperty("Bitcoin");
if((kk++)%10000==0){
System.out.println(coin);
}
}
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
} else {
}
tx.success();
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("INVALID NODE ID!");
}
달성하고자하는 것을 알려주십시오. 순회 API가 Cypher보다 빠르다고 생각하지만 쿼리를 통해 찾고있는 결과를 집계하거나 결과를 페이징 할 수 있습니다. – JohnMark13
내 그래프의 각 관계마다 보내거나받은 비트 동전 수를 나타내는 타임 스탬프가 있습니다. 내가 원하는 것은이 노드의 일일 균형을 계획하는 것입니다. – Neo4jNewBee