0

根据 Neo4j文档,“参考节点概念已过时 - 索引是获取图中入口点的规范方式。”。

但是,如果我使用 GlobalGraphOperations.getAllNodes() 我仍然会返回一个 id 为 0 的节点,该节点不是我创建的,并且具有参考节点的所有外观。

我正在尝试实现一个方法 getNode(String uuid)

   public Node getNode(String uuid)
    {
        GlobalGraphOperations globalGraphOperations = GlobalGraphOperations.at(graphDb);
        for(Node tmpNode : globalGraphOperations.getAllNodes())
        {
            if(tmpNode.equals(graphDb.getReferenceNode()))
            { continue;}

            String tmpNodeUuid = (String)tmpNode.getProperty("uuid");
            if (tmpNodeUuid.equals(uuid))
            {
                return tmpNode;
            }
        }
        return null;
    }

为什么 getAllNodes 返回一个参考节点?如何在不使用不推荐使用的函数 getReferenceNode() 的情况下以编程方式实现 getNode()?

4

1 回答 1

0

参考节点概念确实已被弃用,并将在 Neo4j 2.0 版中删除。在 1.x 中,这个概念仍然存在,并且在最初创建数据库时创建了引用节点。如果您不需要它,您可以删除参考节点。随着整个图的遍历,随着图的增长,您正在编写的方法会变慢。您应该为 UUID 属性创建一个索引并使用它来查找图中的节点,这要快得多。以及“获取图表中的入口点的规范方法”:-)

于 2013-10-29T14:39:39.133 回答