通过REST API连接Neo4j与QlikSense:连接成功但无数据返回求助
问题排查与解决方案
1. 修正API端点URL
你当前使用的URL是Neo4j浏览器界面的路径,并非REST API的Cypher执行端点:
- 错误URL:
http://serveraddress:7474/browser/db/staging/tx/cypher - 正确URL(Neo4j 4.x+ 版本):
http://serveraddress:7474/db/staging/tx/commit - 旧版Neo4j(3.x及以下):
http://serveraddress:7474/db/data/cypher
2. 修复请求体格式
你的请求体存在两处语法错误:
- 顶层键名需改为小写的
statements - 数组内的语句必须是对象结构,而非字符串;同时原代码存在括号闭合不完整问题
正确的请求体示例:
{ "statements": [ { "statement": "match(n:Customer) return n limit 5" } ] }
3. 调整查询语句,返回可解析字段
直接返回节点n会得到嵌套JSON对象,QlikSense解析CSV时无法识别有效列数据。建议返回节点的具体属性:
match(n:Customer) return n.customerId, n.name, n.email limit 5
4. 规范请求头配置
X-Stream=true需要作为独立的请求头字段配置,而非嵌套在请求体内;确保Content-Type: application/json和Accept: application/json已正确设置为请求头。
额外验证步骤
- 用Postman或curl测试API端点,确认能正常返回数据:
curl -u username:password -H "Content-Type: application/json" -d '{"statements": [{"statement": "match(n:Customer) return count(n) as total"}]}' http://serveraddress:7474/db/staging/tx/commit - 在Neo4j Browser中执行
match(n:Customer) return count(n),确认staging数据库内确实存在Customer标签的节点。
内容的提问来源于stack exchange,提问作者Shruthi B.K
相关产品推荐
相关产品推荐

