2014-01-06 2 views
2

난 그냥 2.0 버전 1.8.2에서 내 사이퍼 쿼리를 이동 사이퍼 코드 줄은 Neo4J 잘못된 입력 '(': 식별자 문자, 공백 예상 NodeLabel

start n=node(*) match p=n-[r:OWES*1..200]->n 
where HAS(n.taxnumber) AND NOT(n IN nodes(p)[1..-1]) 
return extract(s in relationships(p) :s.amount), 
extract(t in nodes(p) :ID(t)), length(p) ; 

내가 오류에 얻을 실패 오류가 아이디 (t)를 가리키는

SEVERE: Servlet.service() for servlet [SeeTheResults] in context with path [/DebtSolutions] threw exception 
Invalid input '(': expected an identifier character, whitespace, NodeLabel, '.', node labels, '[', "=~", IN, IS, '*', '/', '%', '^', '+', '-', '<', '>', "<=", ">=", '=', "<>", "!=", AND, XOR, OR, WHERE, '|', ')' or ',' (line 1, column 174) 
"start n=node(*) match p=n-[r:OWES*1..200]->n where HAS(n.taxnumber) AND NOT(n IN nodes(p)[1..-1]) return extract(s in relationships(p) :s.amount), extract(t in nodes(p) :ID(t)), length(p) ;" 
                                              ^

말을 ID (t). 버전 1.8.2에

쿼리는

했다
start n=node(*) match p=n-[r:OWES*1..200]->n 
where HAS(n.taxnumber) [1..-1]) 
return extract(s in relationships(p) :s.amount), 
extract(t in nodes(p) :ID(t)), length(p) ; 

1.8.2가 AND NOT (n IN nodes (p) [1. .. 1])을 지원하지 않았기 때문에 2.0 버전에서이 부분을 옮기면 같은 방식으로 실패합니다. 그래프에는 OWE의 회사와 관계 속성 AMOUNT 간의 관계가 표시됩니다.

답변

2

1.8에 대한 다른 질문에서 대답을 업데이트했습니다.

쿼리를 2.0으로 이동하면 추출물, 필터 등의 :|으로 대체해야합니다.

start n=node(*) match p=n-[r:OWES*1..200]->n 
where HAS(n.taxnumber) AND NOT(n IN nodes(p)[1..-1]) 
return extract(s in relationships(p) | s.amount), 
     extract(t in nodes(p) | ID(t)), length(p) 
+0

'AND NOT (n IN IN (p) [1 ..- 1])'을 사용하면 전혀 결과가 나타나지 않지만 쿼리가 작동합니다. –

+0

다시 두 번 결과가 나옵니다. –