【发布时间】:2017-12-20 21:23:59
【问题描述】:
我有一个在 Neo4j 浏览器中完美运行的复杂请求,我想通过 API Rest 使用它,但是有一些子句我无法处理。
语法如下:
匹配 p=()-[*]->(node1)
在哪里……
有...
....
FOREACH … 设置 …
按照@cybersam 的建议,我使用 Transactional Cyper 构建了查询,但无论如何我都无法使用多个子句。
举个例子,如果我将语句写在一行中:
:POST /db/data/transaction/commit {
"statements": [
{
"statement": "MATCH p = (m)-[*]->(n:SOL {PRB : {PRB1}}) WHERE nodes (p)
MATCH q= (o:SOL {PRB : {PRB2}} RETURN n, p, o, q;",
"parameters": {"PRB1": "Title of problem1", "PRB2": "Title of problem2"}
} ],
"resultDataContents": ["graph"] }
我会得到:
{"results":[],"errors":[{"code":"Neo.ClientError.Statement.SyntaxError","message":"无效输入 'R': 预期的空白,注释,')'或关系模式(第 1 行,第 90 列(偏移量:89))\r\n\"MATCH p = (m)-[*]->(n:SOL {PRB : {PRB1}}) WHERE 节点(p ) MATCH q= (o:SOL {PRB : {PRB2}} 返回 n, p, o, q;\"\r\n ^"}]}
但如果我把它放在几行,:
:POST /db/data/transaction/commit {
"statements": [
{
"statement": "MATCH p = (m)-[*]->(n:SOL {PRB : {PRB1}})
WHERE nodes (p)
MATCH q= (o:SOL {PRB : {PRB2}}
RETURN n, p, o, q;",
"parameters": {"PRB1": "Title of problem1", "PRB2": "Title of problem2"}
}
],
"resultDataContents": ["graph"]
}
据说:
{"results":[],"errors":[{"code":"Neo.ClientError.Request.InvalidFormat","message":"Unable 反序列化请求:非法的未引用字符((CTRL-CHAR,代码 10)):必须使用反斜杠转义才能包含在字符串中 [来源:HttpInputOverHTTP@41fa906c;行:4,列: 79]"}]}
拜托,我需要你的帮助!
亚历克斯
【问题讨论】: