0
我的目標是迭代節點的所有關係並打印出每個關係的一個特定屬性。我的節點有很多關係(幾十萬)。我的迭代在迭代循環中變得越來越慢。有人可以對我的代碼提出任何建議或意見嗎?先進的謝謝!getProperty()在Neo4j中變得越來越慢
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 2014-09-30 14:54:08
對於我圖中的每個關係,我也有一個時間戳,表示發送或接收的比特數。我想要實現的是繪製此節點的日常平衡。 – Neo4jNewBee 2014-09-30 15:44:01