如何使用Neo4j 2.0.x中的Java API找到具有特定标签的所有节点?

时间:2014-02-25 20:08:53

标签: java neo4j labels

我需要使用Java低级API在整个图中找到特定节点。我曾经使用版本1.x中的Reference节点执行此操作,但该概念已在2.0版本中删除。

我以为我可以使用标签来执行此操作:我会在创建时为此节点(并且只有此节点)分配标签。随后我将获得具有此特定标签的所有节点,该标签应返回单个匹配,即我正在寻找的特殊节点。不幸的是,我找不到使用Java API查找具有特定标签的所有节点的方法。

我能够用Cypher做到这一点,但我希望这样看起来尽可能快,因此节省查询解析,规划和执行的成本会很好。

4 个答案:

答案 0 :(得分:5)

此方法GlobalGraphOperations.getAllNodesWithLabel(Label label)返回具有指定标签的所有节点。

答案 1 :(得分:3)

您可以使用GlobalGraphOperations.at(gdb).getAllRelationshipTypes()获取带有标签的所有节点,gdb是您的图表数据库。

答案 2 :(得分:3)

提供的答案为deprecated。现在使用preferred methodGraphDatabaseService.findNodes(Label label)

答案 3 :(得分:1)

GraphDatabaseService.findNodesByLabelAndProperty(Label label,String propName,String propValue)可能适合您的帐单....

或者你可以在最初创建时保存节点的id,然后你可以调用GraphDatabaseService.getNodeById(long id) - 这是迄今为止检索特定节点的最快方法。