从RestCypherEngine执行返回的节点只生成URL

时间:2014-01-15 12:12:55

标签: java neo4j cypher

使用RestCypherEngine在独立的Neo4J服务器上执行查询时,检索节点集合的最佳做法是什么?

我正在运行此代码段....

public DbService() {
    gd = new RestGraphDatabase("http://neo4jbox:7474/db/data/");
    engine = new RestCypherQueryEngine(gd.getRestAPI());
}

public String testData() {
    try (Transaction tx = gd.beginTx()) {
        QueryResult<Map<String, Object>> result;
        result = engine.query(
                "match (n:Person{username:'jomski2009'}) return n ",
                null);
        Iterator<Map<String, Object>> itr = result.iterator();

        while (itr.hasNext()) {
            Map<String, Object> item = itr.next();
            log.info(item.get("n"));
        }

        tx.success();

        return result.toString();
    }
}

当我运行代码时,我得到以下结果......

services.DbService   : http://neo4jbox:7474/db/data/node/177

是指向节点而非节点本身的链接。现在我知道如果我在同一查询中只返回节点的一部分属性,那么效果很好。我想知道的是如何检索完整的节点对象而不必在查询中指定属性?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

它只是RestNode的to-string表示,它仍然具有属性。但不是那些获取的关系将被按需提取。

我建议尝试使用Cypher通过线路获取原始值,这样可以最大限度地减少传输的数据,并且只能获得所需的内容。