【问题标题】:Neo4j index not finding NodeNeo4j 索引找不到节点
【发布时间】:2012-09-26 03:39:23
【问题描述】:

我尝试按照文档进行操作,最终得到了 Neo4j 1.8 的这段代码:

graphDB = new GraphDatabaseFactory()
            .newEmbeddedDatabaseBuilder( BASE_FOLDER + NEO4J_PATH )
            .newGraphDatabase();

registerShutdownHook();

//Check if there are any indexes
System.out.println(Arrays.toString(graphDB.index().nodeIndexNames()));
Index<Node> testIndex = graphDB.index().forNodes("test");

Transaction tx = graphDB.beginTx();
try {
    String nameKey = "name";
    String nameValue = "Gevorg";

    //The following 3 lines will be commented out 
    //when I run the program the second time
    Node me = graphDB.createNode();
    me.setProperty(nameKey, nameValue);
    testIndex.add(me, nameKey, nameValue);

    Node meAgain = testIndex.get(nameKey, nameValue).getSingle();
    System.out.println(meAgain.getProperty(nameKey));

} finally {
    tx.finish();
}

这会按预期打印以下内容:

[] //There is no index at the very beginning
Gevorg

程序终止后,我注释了节点/索引的创建并再次运行程序以命中 NullPointerException(meAgain 为 null)。由于程序首先打印[test],但随后Node meAgain = testIndex.get(nameKey, nameValue).getSingle(); 无法检索节点,因此索引被正确检索。我尝试了使用和不使用事务。我做错了什么??

【问题讨论】:

    标签: java indexing nullpointerexception neo4j


    【解决方案1】:

    在调用tx.finish之前,您需要将您的发送标记为成功

    tx.success()
    

    HTH

    /彼得

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多