0

我正在使用嵌入比例的 Neo4j 1.9。运行此代码时,我在第 5 行出现错误并显示此消息: java.lang.ClassCastException: scala.collection.immutable.Stream$Cons cannot be cast to org.neo4j.graphdb.Node

这是我的代码:

 val _shortestPathQuery= """
    START n=node:node_auto_index(tag="body"),m=node:node_auto_index(tag="#text")
    MATCH p=shortestPath( n-[r:FATHER*..]-m )
    WHERE m.text =~ '.*%s.*'
    RETURN NODES(p) as pathnodes;
    """.stripMargin.format(toSearch)

    val tx = graphDb.beginTx()
    val result = engine.execute( _shortestPathQuery )

    val decPath:Iterator[org.neo4j.graphdb.Node]  = result.columnAs("pathnodes")

    for ( node:org.neo4j.graphdb.Node <- decPath)
    {
       println(node + ": " + node.getProperty("nodeid") + " " + node.getId)
    }

我找到了很多 java 代码,但我无法在 Scala 中转换它。

如果我打印结果: println(result.dumpToString()) 我看到正确的行。

非常感谢你

4

1 回答 1

0

您返回一个包含一个Iterable节点的列。

所以也许使用:

val _shortestPathQuery= """
    START n=node:node_auto_index(tag="body"),m=node:node_auto_index(tag="#text")
    MATCH p=shortestPath( n-[r:FATHER*..]-m )
    WHERE m.text =~ '.*%s.*'
    RETURN NODES(p) as pathnodes;
    """.stripMargin.format(toSearch)

    val tx = graphDb.beginTx()
    val result = engine.execute( _shortestPathQuery )

    val decPath:Iterator[Iterator[org.neo4j.graphdb.Node]]  = result.columnAs("pathnodes")

    for ( node:org.neo4j.graphdb.Node <- nodes <- decPath )
    {
       println(node + ": " + node.getProperty("nodeid") + " " + node.getId)
    }
于 2013-11-10T06:12:52.707 回答