我正在研究一個neo4j相關的項目,我不太明白neo4j中的「索引」。在關係數據庫中,我們在持久磁盤上有表和索引。如何存儲和檢索neo4j索引
我認爲它是相同的neo4j,節點,關係(邊緣)和索引是持久的。我可能是錯的。
在這個例子中,https://github.com/mrhooray/neo4j-sample/blob/master/src/EmbeddedNeo4jWithIndexing.java
public class EmbeddedNeo4jWithIndexing {
private static final String DB_PATH = "/home/mrhooray/Documents/neo4j_db/";
private static final String USERNAME_KEY = "username";
private static GraphDatabaseService graphDb;
private static Index<Node> nodeIndex;
//...
public static void main(String[] args) {
//...
// index is created as following
nodeIndex = graphDb.index().forNodes("nodes");
}
// and used to insert data
private static Node createAndIndexUser(final String username) {
Node node = graphDb.createNode();
node.setProperty(USERNAME_KEY, username);
nodeIndex.add(node, USERNAME_KEY, username);
return node;
}
}
EmbeddedNeo4jWithIndexing是圖形數據庫的抽象。但是,如果我創建並填充圖形數據庫然後關閉程序,該怎麼辦?然後,我想再次訪問具有相同索引的相同數據庫,是否只創建EmbeddedNeo4jWithIndexing的另一個對象?我怎樣才能得到原始指標?
呼叫
nodeIndex = graphDb.index().forNodes("nodes");
一遍嗎?它似乎沒有那樣工作。
非常感謝!