【问题标题】:Travers through Neo4j nodes and relationships in JAVA using REST API使用 REST API 在 JAVA 中遍历 Neo4j 节点和关系
【发布时间】:2013-02-23 19:44:32
【问题描述】:

我想遍历 Java 中的 Neo4j 数据库节点和关系(不是嵌入式的。我想使用 REST API)。 我有以下方法。

public void testTraverse(Node startNode) {
        for (Path position : Traversal.description()
                .depthFirst()
                .uniqueness(Uniqueness.NODE_GLOBAL)
                .evaluator(Evaluators.toDepth(10)).traverse(startNode)) 
        {
            System.out.println(position.lastRelationship().toString()+"\n--------------------------------\n");
        }
        for(Node node:Traversal.description().traverse(startNode).nodes()) {
            System.out.println(node.getProperty("name"));
        }
}

当调用这个方法时,我如何创建 Node 类型的 startNode,我想将它作为参数传递?

我对 Neo4j 很陌生。 请帮我。 Neo4j-Java-ReST 的替代方法也受到热烈欢迎...

【问题讨论】:

  • 不要在节点上使用遍历,而是创建一个RestTraversalDescription 来描述您的遍历,然后将节点传递给traverse,以便它在服务器上执行。
  • 嗨@Micheal Hunger,这是你的意思吗,..> new RestAPIFacade("localhost:7474/db/… .traverse(nodesList.toArray(new Node[0])) ..这会返回一个组织.neo4j.graphdb.traversal.Traverser,对吗?如果不是,您可以在上面的注释中添加一行“创建一个 RestTraversalDescription 来描述您的遍历,然后传入要遍历的节点”。谢谢。

标签: java rest neo4j


【解决方案1】:

嗯,那个起始节点必须是您以前以某种方式存储的节点。

通过 GraphDatabaseService 实例,您可以通过 ID 查找节点:

Node yourNode = graphDatabaseService.getNodeById(0L);

...或通过索引:

Node yourNode = graphDatabaseService.forNodes("anIndexName").get("id", 42).getSingle();

【讨论】:

  • 或者您可以使用graphDatabase.createNode()restApi.createNode(params) 等API 或使用密码语句来创建节点和关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2014-09-29
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多