我正在做一个与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");
再次?它似乎不是那样工作的。
非常感谢!