Javaでneo4jデモコードを書いています。以下は、ノードを作成し、それらにインデックスを付け、それらのプロパティを出力するコードの一部です。
String NODE_KEY = "UserID";
String NODE_PROPERTIES = "UserProperties";
createAndIndexUser(String userID){
Node node = graphDB.createNode();
node.setProperty(NODE_KEY, nodeID);
neo4jGraph.nodeIndex.add(node, NODE_KEY, userID);
return node;
}
for(int i=0 ; i<100 ; i++){
String userID = "userID_"+i;
Node node = createAndIndexUser(userID);
node.setProperty(NODE_PROPERTIES, strNodeProperties);
}
Iterable<Node> allNodes = GlobalGraphOperations.at(graphDB).getAllNodes();
for(Node n: allNodes){
System.out.println("n.getPropertyKeys: "+n.getPropertyKeys());
System.out.println(n.getProperty(NODE_KEY));
}
このコードを実行すると、最初の println の出力は次のようになります。
n.getPropertyKeys: []
一方、2番目のprintlnではエラーが発生します:
Exception in thread "main" org.neo4j.graphdb.NotFoundException: 'UserID' property not found for NodeImpl#0.
私はどこで何を間違っていますか?すべての適切なキーが印刷されないのはなぜn.getProperty(NODE_KEY)
ですか?
すべてのノードを取得してそのプロパティを出力する他の方法はありますか?