【问题标题】:Java Neo4j Cypher query results in unsupportedException when node(*) is used vice node(1,2,3...)当使用 node(*) 副 node(1,2,3...) 时,Java Neo4j Cypher 查询导致 unsupportedException
【发布时间】:2013-02-18 02:35:00
【问题描述】:

给定以下代码:

public class Foo
{

     public void go(String relationship)
     {
             RestGraphDatabase rest = new RestGraphDatabase(
            prop.getProperty("address"), prop.getProperty("username"),
            prop.getProperty("password"));
             ExecutionEngine engine = new ExecutionEngine(rest,
            StringLogger.SYSTEM);
             ExecutionResult result = engine
                .execute("start n=node(7,8,9)  match(n)-[" + relationship
                        + "]->(x) return n,x,caution");    
                    scala.collection.Iterator<Node> nodes = result.columnAs("n");                
     }
}

上述方法有效,但允许我遍历我的列:

public class Foo
{

     public void go(String relationship)
     {
             RestGraphDatabase rest = new RestGraphDatabase(
            prop.getProperty("address"), prop.getProperty("username"),
            prop.getProperty("password"));
             ExecutionEngine engine = new ExecutionEngine(rest,
            StringLogger.SYSTEM);
             ExecutionResult result = engine
                .execute("start n=node(*)  match(n)-[" + relationship
                        + "]->(x) return n,x,caution");    
                    scala.collection.Iterator<Node> nodes = result.columnAs("n");                
     }
}

导致迭代器抛出不受支持的异常。 node(*) 不是列出值的语法糖吗?如果不是,我该如何node(*) 并对其进行迭代?

堆栈:

2013-02-18 03:13:22.227+0000 信息 [org.neo4j]: 开始 n=node(*) match(n)-[caution]->(x) return n,x,caution List(n, x,caution)

线程“main”中的异常 java.lang.UnsupportedOperationException at org.neo4j.rest.graphdb.AbstractRemoteDatabase.getNodeManager(AbstractRemoteDatabase.java:136) 在 org.neo4j.rest.graphdb.RestGraphDatabase.getNodeManager(RestGraphDatabase.java:33) 在 org.neo4j.tooling.GlobalGraphOperations.(GlobalGraphOperations.java:39) 在 org.neo4j.tooling.GlobalGraphOperations.at(GlobalGraphOperations.java:51) 在 org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder$$anonfun$createStartPipe$1.apply(GraphGlobalStartBuilder.scala:51) 在 org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder$$anonfun$createStartPipe$1.apply(GraphGlobalStartBuilder.scala:51) 在 org.neo4j.cypher.internal.pipes.StartPipe$$anonfun$createResults$1.apply(StartPipe.scala:36) 在 org.neo4j.cypher.internal.pipes.StartPipe$$anonfun$createResults$1.apply(StartPipe.scala:35) 在 scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) 在 scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) 在 scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) 在 org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply$mcZ$sp(ClosingIterator.scala:36) 在 org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply(ClosingIterator.scala:35) 在 org.neo4j.cypher.internal.ClosingIterator$$anonfun$hasNext$1.apply(ClosingIterator.scala:35) 在 org.neo4j.cypher.internal.ClosingIterator.failIfThrows(ClosingIterator.scala:87) 在 org.neo4j.cypher.internal.ClosingIterator.hasNext(ClosingIterator.scala:35) 在 org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:139) 在 scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327) 在 scala.collection.Iterator$class.isEmpty(Iterator.scala:256) 在 scala.collection.AbstractIterator.isEmpty(Iterator.scala:1156)

【问题讨论】:

  • A tstorms 说,永远不要使用 RestGraphDatabase 周围的 ExecutionEngine,使用 RestCypherQueryEngine 或 RestAPIFacade.query()。

标签: java neo4j cypher


【解决方案1】:

使用 RestCypherQueryEngine,请参阅 this stackoverflow post。如果您查看源代码,似乎有很多不支持:AbstractRemoteDatabase。 ;-)

【讨论】:

    【解决方案2】:

    您对此查询的实际目标是什么?这会返回您的整个图表?

    如果您想对数据进行处理,请服务器端的查询中进行,而不是通过网络拉取数据。

    您的查询中也没有名为“小心”的标识符。

    start n=node(*)  
    match(n)-[" + relationship + "]->(x) 
    return n,x,caution
    

    【讨论】:

    • 这是一个测试查询,因为我的图表只有 3 个节点(据我了解,node(*) 几乎从来都不是想要的)。我已经能够解决这个问题,我将在今晚发布解决方案。大部分是你和我在过去几天在 google 小组中的对话。
    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2015-11-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多