私は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");
また?そのようには機能しないようです。
どうもありがとう!