使用官方的“Neo4j过程模板”调用过程时出错

cotxawn7  于 2022-10-01  发布在  其他
关注(0)|答案(1)|浏览(228)

我正在使用这个官方的neo4j模板来了解如何编写定制程序https://github.com/neo4j-examples/neo4j-procedure-template

我已经将编译后的JAR文件加载到了一个新的4j容器(社区版本4.4.4)上的插件目录中

定制功能和聚合功能都能正常工作。但当我调用定制过程时

MATCH (n:Person)
CALL example.getRelationshipTypes(n);

我收到了一个错误

Procedure call inside a query does not support naming results implicitly (name explicitly using `YIELD` instead) (line 2, column 1 (offset: 17))
"CALL example.getRelationshipTypes(n);"
 ^

所以我加了收益率,然后我打电话

MATCH (n:Person)
CALL example.getRelationshipTypes(n)
yield result
return result

然后我又犯了一个错误

Unknown procedure output: `result` (line 3, column 7 (offset: 60))
"yield result"
       ^

我怎样才能调用定制程序?

hkmswyz6

hkmswyz61#

如果您查看该过程的代码,您将看到该过程返回一个由两个变量组成的流,即传出和传入。
https://github.com/neo4j-examples/neo4j-procedure-template/blob/4.4/src/main/java/example/GetRelationshipTypes.java

MATCH (n:Person) 
CALL example.getRelationshipTypes(n) YIELD outgoing, incoming 
RETURN n.name as name, outgoing, incoming

示例:

╒═════════╤══════════╤══════════╕
│"name"   │"outgoing"│"incoming"│
╞═════════╪══════════╪══════════╡
│"Alice"  │["KNOWS"] │[]        │
├─────────┼──────────┼──────────┤
│"Charlie"│["KNOWS"] │["KNOWS"] │
├─────────┼──────────┼──────────┤
│"Bob"    │["KNOWS"] │["KNOWS"] │
└─────────┴──────────┴──────────┘

相关问题