有没有简单的方法可以比较neo4j中的两个图

时间:2018-07-23 18:19:39

标签: java eclipse neo4j

我的后端生成一个包含一个节点的图(我们称其为节点1),该图如下所示

                    1                (TOPNODE)
                                    /       \
                    2               1        2
                                  /  \
                    3             3   4
                                /     \
                    4           5      6

顶部节点包含生成图形的日期。

此后,所有偶数级别(包含节点1、2、5和6的2级和4级)都包含唯一名称和一个值,即。一个电话号码。

所有奇数级(第3级AKA:节点3和4)均包含其父名称和其子级信息。

在我的服务中,我可以编辑部分图形。例如:我可以更改节点(NOT THE NAME)中的值。或者我可以一次删除节点。但是我只能通过生成子图的那一部分来访问编辑的信息。

所以我的问题是:我可以将整个图放入JAVA中,然后仅将该子图与刚刚生成的新子图进行比较,然后创建具有变化的旧图的新版本吗?

我尝试过的是: 将所有图作为JSON提取到Java中,并使用它与较小的图进行比较,这是可行的。但是我不知道是否有更有效的方法,或者是否有任何方法可以将Java中的节点作为实际节点而不是JSON。为了将其转换为JSON,我执行了以下操作:

     Session session = driver.session();
    String message = "START n=node(*) MATCH (n)-[r]->(m) RETURN n,r,m;";
    StatementResult result = session.run(message);
    while ( result.hasNext() ) {
        Record record = result.next();
        Gson gson = new Gson();
        System.out.println(gson.toJson(record.asMap()));
        String m = gson.toJson(record.asMap().get("n"));
        JSONObject json = new JSONObject(gson.toJson(record.asMap()));
        convert(json,m);
    }
    session.close();

0 个答案:

没有答案