【问题标题】:Neo4J results not updatingNeo4J 结果未更新
【发布时间】:2014-12-03 10:11:22
【问题描述】:

我有一个非常罕见的问题。我有一个插入 NEO4j 数据库的 java 程序。该程序在我的 local_host 环境中运行良好,但是当我将它部署到服务器(neo4j 所在的位置)时,数据库没有更新。这就是我的工作

//First delete the DB
ExecutionEngine engine = new ExecutionEngine(db);       
engine.execute("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r");

Transaction tx = db.beginTx();
//insertion here
tx.success();
tx.close();

//look if it was correctly updated
System.out.println("NODES: " + engine.execute("START n=node(*) RETURN     count(n)").dumpToString());
System.out.println("RELATIONSHIPS: " +engine.execute("START r=relationship(*) RETURN count(r)").dumpToString());
db.shutdown();

如果我查看日志,一切正常

UPDATED
NODES: +----------+
| count(n) |
+----------+
| 99       |
+----------+
1 row

RELATIONSHIPS: +----------+
| count(r) |
+----------+
| 76       |
+----------+
1 row

但是当我通过浏览器查看 Neo4J Db 什么都没有发生时,之前的结果仍然存在!。请注意,如果我在 Local_host 环境上运行相同的程序,行为是相同的,但在这种情况下它会正确更新

提前谢谢你

【问题讨论】:

  • 请更新您的问题以包含对这些问题的答案 - 但我认为您会通过跟踪这些问题找到您的解决方案:您的网络版本指向哪个数据库目录?当您在代码中创建此 ExecutionEngine 时,它​​是否与嵌入式数据库相关联?如果是这样,那它的路径是什么?如果不是,REST 端点是什么?我的猜测是在某个地方,您指向了错误的数据库。所以更新正在发生,但不是您期望看到的地方。

标签: java graph neo4j


【解决方案1】:

感谢您的建议,我解决了问题。问题是到 Neo4J DB 的路径。当您在 Neo4J DB 所在的同一实例中运行 neo4j 程序时,您必须指定文件夹的路径而不是 IP。它实际上是在创建一个以 IP 命名的新 neo4j。

我用过

public final static String CONEXION_NEO4J = "/folder/of/neo4jdb/database.db";
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J)

而不是

public final static String CONEXION_NEO4J = "//X.X.X.X/neo4j/database.db";
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J)

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多