gpt4 book ai didi

java neo4j 密码查询以匹配节点

转载 作者:行者123 更新时间:2023-11-30 07:05:07 24 4
gpt4 key购买 nike

我很确定我应该看到我自己犯的错误。而且我也确定,我应该知道如何在 Java 中构建一个像样的密码查询,但我就是做不到。已经很晚了,自从过去 4 个小时以来,我一直在努力解决这个问题。所以,我放弃了。

我有一个相对简单的密码查询,我想针对一个开放的交易端点执行

 http://localhost:7474/db/data/transaction/[# number]

所以我想,我只是按照创建节点时的方式来做,只是简单地匹配而不是创建:

  {"statements": [ {"statement": "MATCH (p:POST {properties}) RETURN p", "parameters": {"properties":{"sn_id": "TW", "id": "536627264453353472"}} } ] }

但是服务器告诉我,我不能在这样的匹配中使用参数映射:

  TRACE Neo4JPersistence - sending cypher {"statements": [ {"statement": "MATCH (p:POST {properties}) RETURN p", "parameters": {"properties":{"sn_id": "TW", "id": "536627264453353472"}} } ] } to endpoint http://localhost:7474/db/data/transaction/75
TRACE Neo4JPersistence - GET to http://localhost:7474/db/data/transaction/75 returned status code 200, returned data: {"commit":"http://localhost:7474/db/data/transaction/75/commit","results":[],"transaction":{"expires":"Sun, 23 Nov 2014 21:09:05 +0000"},"errors":[{"code":"Neo.ClientError.Statement.InvalidSyntax","message":"Parameter maps cannot be used in MATCH patterns (use a literal map instead, eg. \"{id: {param}.id}\") (line 1, column 15)\n\"MATCH (p:POST {properties}) RETURN p\"\n ^"}]}
ERROR Neo4JPersistence - ERROR :: [{"message":"Parameter maps cannot be used in MATCH patterns (use a literal map instead, eg. \"{id: {param}.id}\") (line 1, column 15)\n\"MATCH (p:POST {properties}) RETURN p\"\n ^","code":"Neo.ClientError.Statement.InvalidSyntax"}] - could not execute cypher statement at location http://localhost:7474/db/data/transaction/75

所以,好吧,我想。让我们做一些更简单的事情,我是这样构造我的密码的:

 {"statements": [ {"statement": "MATCH (p:SOCIALNETWORK {"sn_id": "TW"} ) RETURN p"} ] }

但为此,服务器返回它无法反序列化请求并且它不喜欢 s - 无论是哪个 s。

这是它的堆栈跟踪:

 TRACE Neo4JPersistence - sending cypher {"statements": [ {"statement": "MATCH (p:SOCIALNETWORK {"sn_id": "TW"} ) RETURN p"} ] } to endpoint http://localhost:7474/db/data/transaction/76
TRACE Neo4JPersistence - GET to http://localhost:7474/db/data/transaction/76 returned status code 200, returned data: {"commit":"http://localhost:7474/db/data/transaction/76/commit","results":[],"transaction":{"expires":"Sun, 23 Nov 2014 21:18:01 +0000"},"errors":[{"code":"Neo.ClientError.Request.InvalidFormat","message":"Unable to deserialize request: Unexpected character ('s' (code 115)): was expecting comma to separate OBJECT entries\n at [Source: org.eclipse.jetty.server.HttpConnection$Input@43b86dc2{HttpChannelOverHttp@12dfe4a{r=10,a=DISPATCHED,uri=/db/data/transaction/76},HttpConnection@7291ace0{FILLING},g=HttpGenerator{s=START},p=HttpParser{s=END,87 of 87}}; line: 1, column: 59]"}]}
ERROR Neo4JPersistence - ERROR :: [{"message":"Unable to deserialize request: Unexpected character ('s' (code 115)): was expecting comma to separate OBJECT entries\n at [Source: org.eclipse.jetty.server.HttpConnection$Input@43b86dc2{HttpChannelOverHttp@12dfe4a{r=10,a=DISPATCHED,uri=\/db\/data\/transaction\/76},HttpConnection@7291ace0{FILLING},g=HttpGenerator{s=START},p=HttpParser{s=END,87 of 87}}; line: 1, column: 59]","code":"Neo.ClientError.Request.InvalidFormat"}] - could not execute cypher statement at location http://localhost:7474/db/data/transaction/76

我现在陷入困境和沮丧。谁能再帮帮我???

提前致谢

基督徒

最佳答案

与 CREATE 不同,MATCH 不能使用属性映射 - 它需要您使用文字。所以你的查询最终应该是这样的:

{
"statements" :
[
{
"statement": "MATCH (p:SOCIALNETWORK {sn_id: {snid}} ) RETURN p",
"parameters": {"snid": "TW"}
}
]
}

在您的第二个查询中,不要将属性键放在引号中:

{"statements": 
[
{
"statement": "MATCH (p:SOCIALNETWORK {sn_id: 'TW'} ) RETURN p"
}
]
}

关于java neo4j 密码查询以匹配节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27094532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com