Ich habe eine komplexe Anfrage, die perfekt in Neo4j Browser funktioniert, die ich über API Rest verwenden möchte, aber es gibt Klauseln, die ich nicht bewältigen kann.Wie verwendet man Klauseln mit API REST Neo4J?
Die Syntax sieht so aus:
MATCH p =() - [*] -> (node1)
WHERE ...
MIT ...
...
.FOREACH ... SET ...
Ich habe die Abfrage mit Transactional Cyper erstellt, wie ich von @cybersam vorgeschlagen wurde, aber es gelingt mir nicht, mehr als eine Klausel zu verwenden.
Um eine exemle zu geben, wenn ich die Aussage in einer Zeile schreiben:
: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"] }
Ich werde erhalten:
{ "Ergebnisse" [] "Fehler": [{“ code ":" Neo.ClientError.Statement.SyntaxError "," message ": Ungültige Eingabe 'R': erwartetes Leerzeichen, Kommentar, ')' oder Beziehungsmuster (Zeile 1, Spalte 90 (Offset: 89)) \ r \ n \ "MATCH p = (m) - [*] -> (n: SOL {PRB: {PRB1}}) WHERE Knoten (p) MATCH q = (o: SOL {PRB: {PRB2}} RETURN n, p, o, q; \ r \ n^"}]}
Aber wenn ich es in mehreren Zeilen setzen,:
: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"]
}
es heißt:
{ "Ergebnisse" [] "Fehler": [{ "Code":“ Neo.ClientError.Request.InvalidFormat " "message":" Kann nicht Anfrage deserialisieren: Illegal unquoted Zeichen ((CTRL-CHAR, Code 10)): hat unter Verwendung von umgekehrten Schrägstrich zu entkommen, um in string Wert \ n enthalten sein, um [Quelle: HttpInputOverHTTP @ 41fa906c; Leitung: 4, Spalte: 79] "}]}
Bitte, ich brauche deine Hilfe
Alex
Also sollte ich jeden Teil des Antrags in einer bestimmten Aussage teilen? Wie würden die Aussagen miteinander verknüpft und mit den analysierten Daten verbunden? – Houngan
Sie übergeben Ihre gesamte Aussage (in Ihrem Beispiel haben Sie nur eine, bestehend aus mehreren Klauseln). – cybersam
Mit Transactional Cypher funktioniert es auch nicht, wenn ich mehr als einen Clause verwende. Lesen Sie das Upgrade dieser Frage oben ... – Houngan