具有多个起点的Cypher curl REST出错

时间:2013-05-22 17:25:18

标签: json rest curl neo4j cypher

当我尝试使用curl命令通过REST传递密码查询时,我收到以下错误。我的问题是curl命令特有的愚蠢,我无法弄明白。

在此查询(我的查询的非常简单的版本)上:

curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json" --data-binary '{ "query": "start ca=node:ca('NUM_CA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }'

错误:(控制台转储)

[user@myhostname02 neo4j]$ curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json" --data-binary '{ "query": "start ca=node:ca('NUM_FA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }'
bash: syntax error near unexpected token `('

bash:意外令牌附近的语法错误`('

但是,同样的JSON我能成功地从http web控制台和cypher运行。 我做了很多查询,但只有一个起点,我不确定这个问题出了什么问题。以下一个成功执行(使用单个起始点):

curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: applicatio/json" --data-binary '{ "query": "start ca=node:ca(NUM_CA=\"000999\") return ca.NME_CA", "params": {} }'

请帮我理解这个!

已编辑 - 添加控制台转储。

1 个答案:

答案 0 :(得分:2)

您对查询没有最终引用。

更新(现在结束报价是固定的): 它仍然与引号有关。您在lucene查询周围的中间有单引号,并围绕整个消息。如果你把它放在一个文件中,它就可以了。试试这个:

 $ cat test.json
 { "query": "start ca=node:ca('NUM_CA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }
 $ curl -X POST -d @test.json http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json"