neo4j引用节点已过时但仍然从getAllNodes返回

时间:2013-10-29 12:19:30

标签: neo4j

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

但是,如果我使用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()?

1 个答案:

答案 0 :(得分:0)

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